我正在开发一个接收带有字节数组的数据报包的应用程序,我需要获取它的信息并将其转换为对象。
我已经阅读了文档,它说存储了每个信息在字节数组上的位置,但我似乎无法将其正确解析为对象。最近有人做过类似的工作吗?
我正在开发一个接收带有字节数组的数据报包的应用程序,我需要获取它的信息并将其转换为对象。
我已经阅读了文档,它说存储了每个信息在字节数组上的位置,但我似乎无法将其正确解析为对象。最近有人做过类似的工作吗?
我建议您查看ByteBuffer。它允许您轻松包装一个字节数组并提取您需要的任何内容:
byte[] arr = ...;
ByteBuffer buff = ByteBuffer.wrap(arr);
int i = buff.getInt(); // interprets the next 4 bytes into an int
这是经常发生的事情。
如果您有职位,则每个部分都有字节数组。
因此,您可以使用String 的构造函数将字节和字符集作为参数
并构造一个 int,只需执行以下操作:
int l = 0;
for(int i =0; i < 4; i++){
l <<= 8;
l ^= (long)b[i] & 0xFF;
}
(假设您在 Big Endian 中收到 int)
如果您正在发送一个对象并希望在另一端接收该对象,只需使用 ObjectOutputStream 和 ObjectInputStream 进行处理。这样它就可以保持它的格式。
int I;
ObjectOutputStream.write(I)
int j;
J = (int)ObjectInputStream.read()