【发布时间】:2011-12-07 14:36:21
【问题描述】:
编辑:我解决了问题,我忘了关闭 ObjectOutputStream。哦!我会留下这个问题,以防有人想提出一个更优雅的选择,我们将不胜感激。
我目前正在尝试编写一个名为 phonebook to file 的类,其中包含一个名为 PhonebookEntry 的对象的 ArrayList。这是电话簿类:
import java.util.ArrayList;
import java.io.*;
public class Phonebook implements Serializable
private static final long serialVersionUID = 1;
ArrayList<PhonebookEntry> phonebookEntries = new ArrayList<PhonebookEntry>();
public void addEntry(String name, String number) {
PhonebookEntry newEntry = new PhonebookEntry(name, number);
phonebookEntries.add(newEntry);
}
}
我尝试过使用简单的 ObjectInput/OutputStream,我可以让它以这种方式保存,但不能加载(通常使用 EOFExcpetion)。有没有一种优雅的方法来保存这样的对象,或者有什么方法可以将对象的 ArrayList 保存到文件中?
【问题讨论】:
-
使用
ObjectOutputStream保存后,您如何尝试再次加载它? -
是的,但效果并不好。
-
当我尝试使用 ois.readObject(); 加载它时出现 EOFException 错误; (ObjectInputStream)
-
你能通过 ObjectOutputStream 发布你用来读/写的代码吗?
-
在生产代码中你可能不想使用
serialVersionUID = 1。而是让你 IDE 为你生成一个合适的 ID。