Java相当于Python的struct.pack?

2022-09-02 10:35:02

是否有任何与Java中的Python等效的函数允许我像这样打包和解包值?struct.pack

pump_on = struct.pack("IIHHI", 0, 0, 21, 96, 512)

答案 1

我认为你可能追求的是一个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();

答案 2

像这样:

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();