今天我遇到了java序列化和反序列化中的奇怪行爲(「奇怪」,因爲我不明白)磁盤空間有多低可能導致java。 IO。 EOFException
我是從linux共享目錄序列化和反序列化一個對象。 序列化所有工作沒有任何問題,但當我試圖反序列化同一個文件時,它會拋出 java. io. EOFException
。此外,反序列化僅對此新創建的文件失敗,並且正在處理該目錄中的所有其他舊文件。
所以我在互聯網上搜索,發現一個線程表示低磁盤空間也可能是這個錯誤的原因。
所以我清理了一些臨時文件,並說它工作。我不明白多麼低的磁盤空間只能影響反序列化和不序列化?
我正在使用apache commons SerializationUtils
類。下面是序列化和反序列化的代碼
SerializationUtils. serialize(myObject, new FileOutputStream(new File(sharePath+FILEName) ;
MyObject object=SerializationUtils. deserialize(new FileInputStream(new File(sharePath+FILEName);
如果有人能解釋這種行爲,那將是非常有用的。我懷疑它在SerializationUtils中的一個錯誤可能會吞噬IOException。
感謝
它不能,除非在寫入*文件時忽略先前的IOException。 – EJP
由於我沒有手動進行序列化,所以IOExceptions由SerializationUtils管理。它在他們的javadoc中。 –
所以這是他們的問題,或者他們糟糕的API設計。 – EJP