Python的struct.pack的Java等价物?

hpxqektj  于 2023-10-14  发布在  Java
关注(0)|答案(4)|浏览(109)

在Java中,有没有类似于Python的struct.pack的函数,可以让我像这样打包和解包值?

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

cgyqldqp1#

我想你可能想要一个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();
xzlaal3s

xzlaal3s2#

大概是这样的:

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

ccgok5k53#

我开始开发一个非常接近Python Struct的项目:JBBP中的java-binary-block-parser看起来像

JBBPOut.BeginBin().Int(0,0).Short(21,96).Int(512).End().toByteArray();
ugmeyewa

ugmeyewa4#

核心Java中最接近的特性是Serialization。它将对象转换为字节序列,然后再转换回来。

相关问题