如何在Java上的文件上追加对象?

时间:2015-07-24 21:17:01

标签: java file object arraylist append

我正在尝试在Java上创建一个应用程序,我需要在文件中保存ArrayLists。我一直在寻找如何做到这一点,我找到了下一个代码:

ArrayList<Expediente> al = new ArrayList<Expediente>();
Expediente exp = new Expediente("Expediente data");

try{
    File file = new File("Pathname");
    FileOutputStream ofs = new FileOutputStream(file);
    ObjectOutputStream oos = new ObjectOutputStream(ofs);
    oos.writeObject(al);
    oos.close();
    ofs.close();
} catch (IOException e) {
    System.err.println("Error!");
    e.printStackTrace();
}

我现在的问题是,如果我想保存相同的ArrayList但是使用其他数据,或者如果我重新打开该文件,则会覆盖文件中的第一个数据。

有人可以告诉如何在文件中附加这些新数据吗?

谢谢。

2 个答案:

答案 0 :(得分:4)

在FileOutputStream ctor中将append标志设置为true。

FileOutputStream ofs = new FileOutputStream(file, true);

http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html

答案 1 :(得分:1)

而不是

FileOutputStream ofs = new FileOutputStream(file);

您可以使用

FileOutputStream ofs = new FileOutputStream(file, true);

请参阅Java API here