【发布时间】:2013-06-01 15:24:26
【问题描述】:
我想知道为什么我的程序只读取 1. 写入对象的元素。 我有 2 节课:
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 个元素为空。 IE。该错误有 99.9999% 的机会出现在您的代码中。使用您发布的代码,无法解释原因。创建一个重现问题的 SSCCE,然后发布此 SSCCE。
-
好吧,我什至可以给你完整的代码,但我的 5 个元素是存在的。我使用它们,可以打印它们,但是当我保存它们并稍后加载到我的程序中时,我只看到第一个初始化,而其他的是 NULLs
-
创建您能想象到的最小的完整程序来重现问题,并将其发布在此处。
-
我已经创建了一个小项目,但没有使用 GUI,而且它可以工作...我需要找出我的 mani 项目糟糕的原因:-/
-
恭喜你做到了。它至少证明了该错误存在于您的代码中。这样做通常可以找到原始代码中的错误所在。祝你好运找到它。使用调试器,并为工作表列表添加监视。
标签: java serialization arraylist