我想使用單個ObjectInputStream從字節數組中讀取數據,但每次啓動程序時都會收到StreamCorruptedException。ObjectInputStream無效的數據頭:00000000
public void run(){
byte[] receiveBuffer = new byte[65535];
bIn = new ByteArrayInputStream(receiveBuffer);
try {
in = new ObjectInputStream(bIn);
} catch (IOException e1) {
e1.printStackTrace();
}
while(true){
try {
packetIn = new DatagramPacket(receiveBuffer, receiveBuffer.length);
sock.receive(packetIn);
Object o = in.readObject();
//do things with o
}
}
}
我只是試圖初始化ObjectInputStream最終從字節數組中讀取,但即使我刪除了while循環,它仍然拋出該異常。
我在這裏做錯了什麼?
所以你說使用套接字輸入流,並收集所有字節進來閱讀,然後創建對象輸入流來讀取字節並獲取對象?它是否正確?基本上緩衝它呢? –
這是一個解決方案。另一種是在流準備好讀取之前不創建讀取器。 – yshavit