Examples

Status: Initial implementation complete.

These examples describe current usage.

For the full examples document, see EXAMPLES.md.

Write a Compact Dataset

BinaryWriter writer = BinaryWriter.create();
writer.writeByteArray(new byte[]{0x4B, 0x42}); // magic
writer.writeVersion(1);                        // version
writer.writeInt(keys.length);                  // count
writer.writeIntArray(keys);
writer.writeLongArray(values);
Files.write(Path.of("data.bin"), writer.toByteArray());

Read a Compact Dataset

BinaryReader reader = BinaryReader.from(Files.readAllBytes(Path.of("data.bin")));
reader.validateMagic(new byte[]{0x4B, 0x42});
reader.validateVersion(1);
int count = reader.readInt();
int[] keys = reader.readIntArray(count);
long[] values = reader.readLongArray(count);

Memory-Map a File

try (MappedBinaryReader reader = MappedBinaryReader.from(Path.of("index.bin"))) {
    int count = reader.readInt(0);
    for (int i = 0; i < count; i++) {
        long offset = 4 + (i * 16L);
        long key = reader.readLong(offset);
        long value = reader.readLong(offset + 8);
    }
}

Handle Errors

try {
    reader.validateMagic(new byte[]{0x4B, 0x42});
} catch (BinaryFormatException e) {
    System.err.println("Format error: " + e.getMessage());
}

See Also