public static ByteBufferReader of(ByteBufferReader reader, long readBase, Closeable close) throws IOException {
        return new ByteBufferReader() {
            @Override
            public void read(long position, ByteBuffer dst) throws IOException {
                reader.read(readBase + position, dst);
            }

            @Override
            public void read(long position, byte[] buffer, int offset, int length) throws IOException {
                reader.read(readBase + position, buffer, offset, length);
            }

            @Override
            public boolean exists(long position) throws IOException {
                return reader.exists(readBase + position);
            }

            @Override
            public void close() throws IOException {
                if (close != null) {
                    close.close();
                }
            }
        };
    }
Wrap a ByteBufferReader into an {@link Opener}.
Note that the close will <b>not</b> passed to the opener,
indexr-common/src/main/java/io/indexr/io/ByteBufferReader.java