私は、ユーザーがオブジェクトを ArrayList に入力し、プログラムを閉じて、プログラムを再度開き、以前の ArrayList (最初の実行から) にアクセスできるようにするプロジェクトに取り組んでいます。
私は現在、ユーザー入力オブジェクトを ArrayList に持っています。リストはシリアル化され、ArrayList を .bin ファイルとして保存します。プログラムを再度実行すると、以前のリストが保存されますが、新しい値を入力すると、古いリストが上書きされます。私が探しているのは、.bin ファイルが存在するかどうかを確認し、存在する場合は新しいオブジェクトを ArrayList に追加し、存在しない場合は新しいオブジェクトを作成する方法だと思います。以下にサンプルコードをいくつか追加します。
ここでは、arraylist と、.bin ファイルが作成される文字列を作成します。
public class Tender {
ArrayList<Alcohol> arraylist = new ArrayList<Alcohol>();
String dataList = "dataList.bin";
}
ここで、ArrayList をシリアル化します。
private void Serialize() throws IOException {
try (ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(dataList))) {
os.writeObject(arraylist);
os.close();
System.out.println("done writing");
}
}
ここで、前回の実行でシリアル化されたファイルを読み戻そうとします。
private void load() throws FileNotFoundException, IOException, ClassNotFoundException {
try (ObjectInputStream is = new ObjectInputStream(new FileInputStream(dataList))) {
ArrayList newAL;
newAL = (ArrayList) is.readObject();
System.out.println(newAL);
}
Start();
}
}