2011-05-08 55 views

回答

5

不,沒有機制來反思流來找出這些信息。如果您需要這樣做,那麼發件人需要向數據流添加元數據,以指示接下來將接收哪些數據。

例如,發送方可以發送一個0字節(它可能是一個信號,用於「下一個數據項是一個int」),然後發送int,然後發送一個1字節(對於「下一個信號數據項是long「),然後是long本身。

消費者會讀取信號,並知道是否調用readIntreadLong

備選地,可以使用ObjectInputObjectOutput代替DataInputStream,其執行爲你的內省(如果使用writeObject()readObject())。

1

不是。它是所有原始二進制數據。除非你指定你的期望,否則它是一樣的。