如何使用序列化从txt.datei加载多个Object实例



你好,这是我在这里的第一个问题,

我创建了一个名为Person和SubObjekts教授和学生的对象。

现在,我正试图将我从中创建的所有实例保存在.txt文件中,然后再次加载它们。所以我保存成功了,我在Person中创建了一个静态ArrayList,每次创建一个人时,他们都会通过构造函数进入这个列表。之后,我只是将列表保存在.txt文件中。

现在的问题是如何再次加载此列表并使用实例。

public static void save() {

try {
File datei = new File("C:\Users\...");
datei.createNewFile();
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(datei));

oos.writeObject(Person.PersonListe);
oos.flush();
oos.close();
System.out.println("Die datei wurde gesichert");
}catch(Exception e) {
e.printStackTrace();
System.out.println("Die datei wurde nicht gesichert");
}
}

当我第一次尝试保存一个Objekt,然后再次加载它时,我尝试了这样的操作,但没有成功。

public static void load() {

try {
File datei = new File("C:\Users.....");


ObjectInputStream ois = new ObjectInputStream(new FileInputStream(datei));
Object rawObject = ois.readObject();

if(rawObject instanceof Person) {

Person P1 = (Person)rawObject;
System.out.println(P1.vorname + " " + P1.nachname);
ois.close();

System.out.println("Inhalt wurde geladen");
}else {
System.out.println("Kein Inhalt gefunden");
}

}catch(Exception e) {
e.printStackTrace();
}

}

剩下的是一个类项目,我没有使用MYSQL和数据库的经验,所以我没有使用它们。

如果我理解正确,您希望序列化ArrayList中的所有对象
然后您可以简单地序列化整个列表,因为默认情况下ArrayList实现Serializable

最新更新