Java 使用二进制文件读取、写入和保存序列化对象
我正在进行一个项目,希望用户能够将对象输入ArrayList,关闭程序,再次打开程序,并让用户可以访问第一次运行时的前一个ArrayList 我当前将用户输入对象放入ArrayList,该列表序列化ArrayList并将其保存为.bin文件。当我再次运行程序时,会保存上一个列表,但当我输入新值时,它会覆盖旧列表。我想我要寻找的是一种方法来查看我的.bin文件是否存在,如果存在,则向ArrayList添加新对象,如果不存在,则创建一个新对象。我将在下面添加一些示例代码 在这里,我创建arraylist和一个字符串,为其创建.bin文件Java 使用二进制文件读取、写入和保存序列化对象,java,file,serialization,arraylist,writing,Java,File,Serialization,Arraylist,Writing,我正在进行一个项目,希望用户能够将对象输入ArrayList,关闭程序,再次打开程序,并让用户可以访问第一次运行时的前一个ArrayList 我当前将用户输入对象放入ArrayList,该列表序列化ArrayList并将其保存为.bin文件。当我再次运行程序时,会保存上一个列表,但当我输入新值时,它会覆盖旧列表。我想我要寻找的是一种方法来查看我的.bin文件是否存在,如果存在,则向ArrayList添加新对象,如果不存在,则创建一个新对象。我将在下面添加一些示例代码 在这里,我创建arrayli
public class Tender {
ArrayList<Alcohol> arraylist = new ArrayList<Alcohol>();
String dataList = "dataList.bin";
}
这里是我尝试从上一次运行中加载序列化文件的地方
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();
}
}
查看该文件是否存在的方法是尝试打开它,并捕获该文件不存在时发生的FileNotFoundEzception。如果有,请阅读列表;如果不是,请创建一个新文件。您所称的文件实际上不相关,当然也不需要在标题中。请详细说明-酒精是否实现可序列化?-如何向arraylist添加更多项目,如果可能,请提供更多代码?-您是否能够在反序列化时从列表中检索项目?
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();
}
}