我试图学习如何使用Array List将对象写入文件,但是,当我重新启动程序时,文件不断被覆盖并且数据未保留:使用ArrayList将对象附加到文件
System.out.println("Enter DVD title: ");
String title = inputScanner.nextLine();
System.out.println("Enter main actor: ");
String actor = inputScanner.nextLine();
System.out.println("Enter DVD's release year: ");
String yearOfRelease = inputScanner.nextLine();
newDVD = new DVD(title, actor, yearOfRelease);
System.out.println("Entered DVD details: ");
DVDCollection.add(newDVD);
writeDVDs(DVDCollection);
break;
上面的代码从用户处获取输入并将其存储在ArrayList中。
当我重新启动程序似乎擦拭一切。
static void writeDVDs(ArrayList<DVD> DVDs) throws Exception {
try {
Boolean append = true;
FileOutputStream fileOutputStream = new FileOutputStream("DVDCollection.dat", append);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
for (int i = 0; i < DVDs.size(); i++){
DVD theDVD = DVDs.get(i);
objectOutputStream.writeObject(theDVD);
System.out.println("DVD successfully saved");
}
}
catch (Exception e){
System.out.println("Cant write data to file");
}
}
我再次更新了我的答案;有些反馈会受到欢迎... – GhostCat
只需编写整个列表。你不需要迭代它。但是,如果不采取特殊措施,您无法附加到对象流。 – EJP
感谢您的反馈,我没有声称擅长编程,但这是def帮助 –