我将多个对象写入文件,然后在代码的另一部分中检索它们。我的代码没有错误,但是无法正常工作。您能帮我发现我的代码有什么问题吗?我从不同的网站阅读了不同的代码,但是没有一个对我有用!
这是将对象写入文件的代码:MyClassList是一个数组列表,其中包含我的类的对象(必须将其写入文件)。
for (int cnt = 0; cnt < MyClassList.size(); cnt++) { FileOutputStream fout = new FileOutputStream("G:\\address.ser", true); ObjectOutputStream oos = new ObjectOutputStream(fout); oos.writeObject(MyClassList.get(cnt)); }
我向输出流的构造函数添加了“ true”,因为我想将每个对象都添加到文件的末尾。那是对的吗?
这是我从文件中读取对象的代码:
try { streamIn = new FileInputStream("G:\\address.ser"); ObjectInputStream objectinputstream = new ObjectInputStream(streamIn); MyClass readCase = (MyClass) objectinputstream.readObject(); recordList.add(readCase); System.out.println(recordList.get(i)); } catch (Exception e) { e.printStackTrace(); }
最后,它仅打印出一个对象。现在,我不知道我书写或阅读不正确!
为什么不立即序列化整个列表?
FileOutputStream fout = new FileOutputStream("G:\\address.ser"); ObjectOutputStream oos = new ObjectOutputStream(fout); oos.writeObject(MyClassList);
当然,假设MyClassList是一个ArrayListor LinkedList或另一个Serializable集合。
ArrayList
LinkedList
Serializable
在将其读回的情况下,在代码中您仅准备了一项,就没有循环来收集所有已写入的项。