java.io.EOFException
FileInputStream fis = new FileInputStream("e:\\new
FileOutputStream fos = new FileOutputStream("e:\\new
ObjectInputStream ois = new ObjectInputStream(fis);?
?ObjectOutputStream oos = new ObjectOutputStream(fos);?
?會出現(xiàn): java.io.EOFException 這是一個可能出現(xiàn)的問題,有誰知道是什么原因嗎
經(jīng)過我的實踐:
如果把最后兩行代碼互換,就怎么都不會報錯。
發(fā)生的原因是讀取StreamHeader錯誤,也就是這個文件不能被讀成一個序列化對象
而為什么最后兩行對調(diào)后就不會報錯了呢,大家可以實踐一下:
FileOutputStream fos = new FileOutputStream("e:\\new//已經(jīng)存在的文件將被刪除再重新被創(chuàng)建,字節(jié)長度為0
?ObjectOutputStream oos = new ObjectOutputStream(fos); //只要創(chuàng)建了此流,java就會向文件中寫入4個字節(jié)的內(nèi)容。( 寫入的應該是StreamHeader吧)
而此時再執(zhí)行ObjectInputStream ois = new ObjectInputStream(fis); 就不會報錯了
2017-03-16
還有就是我寫入一個對象后文件占43字節(jié),寫入2個對象后文件占48字節(jié),寫入3個對象后文件占53個字節(jié)......