2011-01-05 90 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);