如何将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是一个ArrayListor LinkedList或另一个Serializable集合。

在将其读回的情况下,在代码中您仅准备了一项,就没有循环来收集所有已写入的项。

以上是 如何将Java序列化的对象写入和读取到文件中 的全部内容, 来源链接: utcz.com/qa/417245.html

回到顶部