阅读用二进制文件写入和保存序列化对象

时间:2015-01-28 16:42:26

标签: java file serialization arraylist writing

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

1 个答案:

答案 0 :(得分:0)

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

相关问题