如何将Java序列化的对象写入和读取到文件中
我将多个对象写入文件,然后在代码的另一部分中检索它们。我的代码没有错误,但是无法正常工作。您能帮我发现我的代码有什么问题吗?我从不同的网站阅读了不同的代码,但是没有一个对我有用!
这是将对象写入文件的代码: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是一个ArrayList
or LinkedList
或另一个Serializable
集合。
在将其读回的情况下,在代码中您仅准备了一项,就没有循环来收集所有已写入的项。
以上是 如何将Java序列化的对象写入和读取到文件中 的全部内容, 来源链接: utcz.com/qa/417245.html