我正在开发一个项目,我希望用户能够将对象输入到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();
}
}
答案 0 :(得分:0)
查看文件是否存在的方法是尝试打开它,并捕获发生的FileNotFoundEzception
(如果不存在)。如果它在那里,请阅读列表;如果不是,请创建一个新的。