【发布时间】:2020-02-16 23:24:51
【问题描述】:
给定的函数写入文件,但再次调用它会覆盖文件中的前一个列表对象,例如
如果数组列表索引 0 包含名称-“aman”,我调用此函数,它将“aman”保存在文件中。 但是当索引 1 的名称为“lavesh”时,它会覆盖以前的数据
它在像“lavesh”这样的文件中 但我想要它像“阿曼 奢侈”
public void alter_file( ArrayList<Flight_registrie> x) {
try {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(" Flight Registrie.txt"));
oos.writeObject(x);
x.clear();
oos.close();
} catch (IOException e) {
System.out.println("An I/O error occurs");
e.printStackTrace();
}
}
没有错误,但我的方法可能是错误的
【问题讨论】:
-
我不是这方面的专家,但您不是在写入文本文件,而是在序列化到数据文件。在这种情况下,最好重新序列化整个数据,而不是尝试附加到现有文件。附加对文本文件非常有效,一种方法是使用 FileWriter,其第二个布尔参数是
true,但同样,这不是我们在这里谈论的......虽然 FileOutputStream 也可以采取第二个布尔参数,确定是否追加。同样,我不确定这有多安全 -
感谢分享我有同样问题的另一个问题
-
然后根据副本中的答案修复它
-
确保 Flight_registrie 类实现可序列化。然后追加到文件:
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(" Flight Registrie.txt", true));.
标签: java arraylist append fileoutputstream