我有下面的代碼到我的數據序列化到一個文件:Java序列化問題
out = new ObjectOutputStream(new FileOutputStream(file));
out.writeObject(chunk);
out.flush();
我用下面寫着:
in = new ObjectInputStream(new FileInputStream(file));
Chunk chunk = (Chunk) in.readObject();
奇怪的是,當我讀到的數據,所有成員被設置爲默認值,並且我沒有收到以前寫過的數據。
如果我使用XML變體,一切正常。
e = new XMLEncoder(new FileOutputStream(file));
e.writeObject(chunk);
e.flush();
和
e = new XMLDecoder(new FileInputStream(file));
Chunk chunk = (Chunk) e.readObject();
什麼是錯的二進制格式?
更新
好吧,我現在得到這樣的:組塊是在課堂上,其他類與其他類等複雜類。在某些時候,包含的類被聲明爲Object,並且應該是Serializable。正如史蒂夫所說。
謝謝你的回答。
請發佈** Chunk **類的代碼 – 2009-10-22 13:52:32
'java.beans.XMLEncoder' /'XMLDecoder'是一個完全獨立的機制。 – 2009-10-22 14:08:36