我正在做一个项目,我希望用户能够将对象输入到 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();
}
}