A utility Java library for reading and writing binary data with support for various data types and byte orders.
- Flexible binary data reading and writing
- Support for multiple primitive types
- Customizable byte order (Big Endian / Little Endian)
- Enum handling with different serialization formats
- Comprehensive type conversion
The BinaryReader
allows you to read binary data from an input stream with ease:
try (BinaryReader reader = new BinaryReader(new FileInputStream("data.bin"))) {
int intValue = reader.readInt();
float floatValue = reader.readFloat();
String stringValue = reader.readStringTerminated();
reader.setOrder(ByteOrder.LITTLE_ENDIAN);
int[] intArray = reader.readIntArray(10);
}
The BinaryWriter
provides a flexible way to write binary data to an output stream:
try (BinaryWriter writer = new BinaryWriter(new FileOutputStream("output.bin"))) {
writer.writeInt(42)
.writeFloat(3.14f)
.writeStringTerminated("Hello, World!");
writer.setOrder(ByteOrder.LITTLE_ENDIAN);
writer.writeIntArray(new int[]{1, 2, 3, 4, 5});
}
The library supports multiple enum serialization formats:
writer.writeEnum(DayOfWeek.TUESDAY, EnumFormat.ORDINAL);
writer.writeEnum(DayOfWeek.FRIDAY, EnumFormat.STRING);
The library supports reading and writing:
- Primitive types:
byte
,short
,int
,long
,float
,double
,char
- Half-precision floats
- Byte arrays and arrays of primitives
- Strings (fixed-length, variable-length, and null-terminated)
- Enumerations
Easily switch between Big Endian and Little Endian byte orders:
reader.setOrder(ByteOrder.BIG_ENDIAN);
writer.setOrder(ByteOrder.LITTLE_ENDIAN);
IOException
- for I/O errorsNoSuchElementException
for invalid enum names