Есть ли какая-либо функция, эквивалентная struct.pack Python в Java, которая позволяет мне упаковывать и распаковывать такие значения?
struct.pack
pump_on = struct.pack("IIHHI", 0, 0, 21, 96, 512)
Я думаю, что после вас может быть ByteBuffer :
ByteBuffer pump_on_buf = ... pump_on_buf.putInt(0); pump_on_buf.putInt(0); pump_on_buf.putShort(21); pump_on_buf.putShort(96); pump_on_buf.putInt(512); byte[] pump_on = pump_on_buf.array();
Примерно так:
final ByteArrayOutputStream data = new ByteArrayOutputStream(); final DataOutputStream stream = new DataOutputStream(data); stream.writeUTF(name); stream.writeUTF(password); final byte[] bytes = stream.toByteArray(); // there you go
Позже вы можете прочитать эти данные:
final DataInputStream stream = new DataInputStream( new ByteArrayInputStream(bytes) ); final String user = stream.readUTF(); final String password = stream.readUTF();
Я начал разработку проекта, очень близкого к Python Struct: java-binary-block-parser в JBBP это будет выглядеть как
JBBPOut.BeginBin().Int(0,0).Short(21,96).Int(512).End().toByteArray();
Ближайшая функция в ядре Java - Сериализация .Преобразует объект в последовательность байтов и обратно.