@Override
    public void put(int position, byte[] source) throws IOException {
        ByteBuffer bf = ByteBuffer.wrap(source);

        while (bf.hasRemaining()) {
            int len = fileChannel.write(bf, position);
            position += len;
        }
    }