0

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

1 回答 1

0

查看文件是否存在的方法是尝试打开它,FileNotFoundEzception如果它不存在,则捕获发生的情况。如果它在那里,请阅读列表;如果不是,请创建一个新的。

于 2015-01-30T18:14:44.243 回答