0
編輯(爲了混淆):null
已被寫入文件「abc」和「efg」。創建FileOutputStream對象後文件發生變化,即使沒有寫入文件
運行下面的代碼,文件「ABC」改變其最初null
的內容後,我在每一次執行得到EOFException類:
ObjIStream = new ObjectInputStream(new FileInputStream("abc"));
M[][] objs = (M[][]) ObjIStream.readObject();
FS.objs = objs;
ObjIStream.close();
這裏,FS.objs
是類FS的靜態成員鍵入M[][]
類型。
在另一方面,這其中有對文件沒有影響,我任何被處決的人數後,沒有得到任何例外:
ObjIStream = new ObjectInputStream(new FileInputStream("abc"));
M[][] objs = (M[][]) ObjIStream.readObject();
ObjIStream.close();
編輯:我剛剛發現存在於類FS麻煩在這種形式:
static{
try {
ObjOStream = new ObjectOutputStream(new FileOutputStream("abc"));
ObjOStream.close();
ObjOStream = new java.io.ObjectOutputStream(new java.io.FileOutputStream("efg"));
ObjOStream.close();
}
catch (IOException ex) { }
}
它是如何煩惱嗎?
正如你可能已經知道的那樣,閱讀文件不應該改變它,並且不能改變文件本身,所以你需要向我們展示代碼,這實際上是爲了我們能夠猜測什麼可能是錯誤的。請顯示你的文件和你的[mcve]。 –
嗯,我剛剛發現我有這樣的代碼在FS: 'static { 嘗試ObjOStream = new ObjectOutputStream(new FileOutputStream(「abc」)); ObjOStream.close(); ObjOStream = new java.io.ObjectOutputStream(new java.io.FileOutputStream(「efg」)); ObjOStream.close(); } catch(IOException ex){ } }' –
是的,這是麻煩,但它是如何令人煩惱? –