是否有任何与struct.pack
Java 中的 Python 等效的函数允许我像这样打包和解包值?
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 的项目: JBBP 中的 java-binary-block-parser 它看起来像
JBBPOut.BeginBin().Int(0,0).Short(21,96).Int(512).End().toByteArray();
核心 Java 中最接近的特性是序列化。它将对象转换为字节序列并返回。