我正在尝试在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但是使用其他数据,或者如果我重新打开该文件,则会覆盖文件中的第一个数据。
有人可以告诉如何在文件中附加这些新数据吗?
谢谢。
答案 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。