假設我使用DataInputStream
來接收數據,但我不知道是否應該使用(例如)readUTF
,readInt
或readLong
。有沒有一種方法可以告訴我在另一面寫入了什麼類型的數據?從DataInputStream中讀取而不知道輸出類型
0
A
回答
5
不,沒有機制來反思流來找出這些信息。如果您需要這樣做,那麼發件人需要向數據流添加元數據,以指示接下來將接收哪些數據。
例如,發送方可以發送一個0
字節(它可能是一個信號,用於「下一個數據項是一個int
」),然後發送int
,然後發送一個1
字節(對於「下一個信號數據項是long
「),然後是long
本身。
消費者會讀取信號,並知道是否調用readInt
或readLong
。
備選地,可以使用ObjectInput
和ObjectOutput
代替DataInputStream
,其執行爲你的內省(如果使用writeObject()
和readObject()
)。
1
不是。它是所有原始二進制數據。除非你指定你的期望,否則它是一樣的。
相關問題
- 1. java從DataInputStream中讀取未知格式
- 2. 從DataInputStream讀取int []
- 3. 球拍,從端口讀取輸入而不知道什麼
- 4. 從java中的DataInputStream讀取輸入時出錯
- 5. DataInputStream不讀取小文件
- 6. DataInputStream讀取不阻止
- 7. 從DataInputStream中讀取幾個字節[
- 8. 從文本文件讀取2d數組而不知道邊界?
- 9. Java:使用事先不知道的類型讀取數據
- 10. 用azure brokeredmessage獲取身體而不知道類型
- 11. 從Perl管道中讀取不斷輸出的文字
- 12. 我們如何知道wcf服務的輸入/輸出類型?
- 13. 在PHP中使用XMLReader讀取XML而不知道節點
- 14. 怎麼知道的輸出值在Oracle中的數據類型
- 15. Biopython類實例 - 從Entrez.read輸出:我不知道如何操縱輸出
- 16. DataInputStream在讀取時掛起
- 17. 通過讀取函數讀取標準輸出而不是fread
- 18. Python類輸出十六進制值而不是列表,不知道爲什麼?
- 19. 輸入使用DataInputStream類
- 20. c中的「超載」函數 - 不知道輸入參數類型
- 21. 通過python讀取管道輸出行
- 22. 聲明UIViewController而不知道子類?
- 23. 加載類而不知道包?
- 24. 從進程讀取輸出
- 25. 從servlet讀取jar輸出
- 26. 從pexpect sendline讀取輸出
- 27. 從DataInputStream讀取int時I/O不一致
- 28. 不知道如何從我的輸出中排除數字值
- 29. 獲取ImageView而不知道它
- 30. 無法讀取'undefined'的道具類型