我有一個規範,它告訴前四個字節指向一個特定的值,接下來的8個指向一個int,然後是32位,用於說特定的數據類型。 在java中讀取這些數據的最佳方式是什麼?有沒有什麼標準的辦法還是我只需要通過移動由各自的位置使用java中的規範解碼二進制數據
0
A
回答
1
Bit Masking偏移會做
4
你最好的選擇讀它,如果你真的需要做到這一點在Java中是創建一個簡單的DTO與自定義序列化。根據您的協議格式定義它的字段,並從字節流中讀取它自己。例如:
public class ProtocolDTO implements Serializiable {
private int specificValue;
private long anInt;
private int particularDataType;
// Constructors, Accessors
private void readObject(ObjectInputStream in)
throws IOException, ClassNotFoundException {
specificValue = in.readInt();
anInt = in.readLong();
particularDataType = in.readInt();
}
}
從這樣的協議流直接讀取時,要小心端到端性。此外,您可能需要聲明可序列化的子類型,具體取決於'particularDataType'的真正含義。
3
要從流中讀取原始類型,請使用DataInputStream並按順序讀取適當的類型。
http://download.oracle.com/javase/1.4.2/docs/api/java/io/DataInputStream.html
int i1 = stream.readInt();
long l1 = stream.readLong();
只是照顧驗證流中使用什麼樣的約定,即是整數符號或無符號的等。這可以在另一個答案中建議的反序列化方法中完成。
相關問題
- 1. 使用java解碼二進制消息
- 2. Java二進制文件writeUTF ...解釋規範
- 3. 將ODBC規範日期轉換爲二進制或使用ODBC規範函數
- 4. 解碼字節間二進制數據
- 5. 使用xml指定數據結構的二進制解碼器
- 6. 如何將數組編碼爲二進制並將二進制數據解組到二進制數組中?
- 7. 解析C中的二進制數據
- 8. 解析JavaScript中的二進制數據
- 9. 解析HttpServletRequest中的二進制數據
- 10. Tokenising java中的二進制數據
- 11. 變化的Java二進制類格式規範
- 12. 在java中使用二進制數字
- 13. 使用ABAP中的二進制數據
- 14. 用javascript解碼二進制QR碼數據
- 15. 用於解碼二進制小數的二維數組
- 16. 用scala解析二進制數據
- 17. 在Python中解釋二進制數據
- 18. websocket用於數據和解碼的二進制傳輸
- 19. python - 使用結構解析二進制文件中的數據
- 20. 如何使用XSLT解碼嵌入到XML中的二進制數據?
- 21. 在PHP中使用二進制數據
- 22. 在android中使用二進制數據?
- 23. 瞭解二進制代碼
- 24. 在JAVA中編碼/解碼Microsoft二進制XML
- 25. 解析二進制數據的問題
- 26. 用Java解析ASN.1二進制數據
- 27. JavaScript Base 64解碼二進制數據不起作用
- 28. Base64解碼不適用於二進制數據
- 29. ActionScript2 Base64編碼/解碼二進制數據
- 30. 編碼瓶/ Jinja2的二進制數據