我想知道爲什麼我的程序只讀1.寫入對象的元素。 我有2類:ArrayList的反序列化只讀取一個對象
public class Sheet implements Serializable{
int something1;
String something2;
}
下一個:
public class Book implements Serializable{
ArrayList<Sheet> menu = new ArrayList<Sheet>();
public void newSheet(Sheet temp)
{ menu.add(temp);}
}
保存書(類主簿是靜態的預訂利布羅=新預訂();)
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream ("libro.obiekt"));
out.writeObject(Libro);
out.close();
和讀:
ObjectInputStream in = new ObjectInputStream(new FileInputStream("libro.obiekt"));
Libro = (Book) in.readObject();
in.close();
當我這樣做,例如:在Libro裏面的ArrayList中有5個對象,我只能讀第一個,而其他4個會是NULL對象.... 任何想法我做錯了什麼?
您可能在列表中有5個元素,但在序列化書籍時最後的4個元素爲null。即該錯誤在您的代碼中有99.9999%的機會。隨着您發佈的代碼,無法解釋原因。創建一個重現問題的SSCCE,併發布此SSCCE。 –
嗯,我可以給你甚至完整的代碼,但我的5個元素存在。我與他們合作,可以打印他們,但是當我保存它們,然後加載到我的程序中時,我只看到第一個官方的,而其他的都是空的 –
創建一個可以想象重現問題的最小完整程序,並將其發佈到此處。 –