default void read(long position, byte[] buffer, int offset, int length) throws IOException {
        ByteBuffer byteBuffer = ByteBuffer.wrap(buffer);
        byteBuffer.position(offset);
        byteBuffer.limit(offset + length);
        read(position, byteBuffer);
    }
Read exactly <i>size</i>s bytes from this ByteBufferReader from <i>position</i> into <i>dst</i>.

Whether this function may or may not change the position of datasource is implementation specific.
indexr-common/src/main/java/io/indexr/io/ByteBufferReader.java