private int readInt(int pos) throws IOException {
        reader.read(pos, intValBuffer, 0, 4);
        return Platform.getInt(intValBuffer, Platform.BYTE_ARRAY_OFFSET);
    }
The ByteBuffer here is normally comes from {@link java.nio.channels.FileChannel#map(FileChannel.MapMode, long, long)}.
If it is a pure memory byte reader, then you probably should use {@link StringsStruct}.
indexr-common/src/main/java/io/indexr/data/StringsStructOnByteBufferReader.java