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
フィードバックのおかげで、私はプログラミングには良いと主張していませんでしたが、これは助けになります –