2011-01-05 88 views
0

我正在处理一个项目,其中数据必须以二进制格式读取,但可以放入结构格式。在java结构不可用。我已经发送了字节数组中的数据。它也有一些结构。为原始数据创建框架或二进制读写

对于实施例

分组

int length 
int sequence no 
MessageData 

MessageData 的MessageHeader 消息体

的MessageHeader INT DATA1 长DATA2 炭[] DATA3 // 2字节 炭[] DATA4 // 3字节

MessageBody相同

但数据应该打包在字节数组中。

人们可以在CPP做的

#pragma(2) //for word alignment 

struct Packet{ 
    int length 
    int sequence no 
    MessageData msgdata 

} 

我必须用Java实现。

读取数据我使用Preon

但写数据。我仍在使用包装数据正常方法以字节数组的一些功能 任何人的帮助,对同类型的项目工作,或有更好的主意

+0

如果您使用Preon库进行阅读,我建议您也使用它进行编写。否则,您需要知道它如何构建数据。我的猜测是你打算使用字节[]作为文本而不是char [](char是16位的Java) – 2011-01-05 09:14:19

+0

是的,它在byte []中。我不知道如何使用Preon lib编写。如果您有代码,请将其发布。我没有在网上找到任何帮助或文件。 – Kamahire 2011-01-05 09:17:53

回答

0

当前的代码库确实包含一些用于写入数据的字节,但是尚未完成。话虽如此,它可能适用于您当前的情况:

Codec<Packet> codec = Codecs.create(Packet.class); 
Packet packet = ...; 
OutputStream out = ...; 
codecs.encode(packet, codec, out);