我試圖學習如何使用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幫助 –