【问题标题】:How to append arraylist<object > in a file in java如何在java中的文件中附加arraylist <object>
【发布时间】: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


【解决方案1】:

是的oos.writeObject(x); 将写入一个内容为x 的文件。然后它将删除旧文件的内容。

您可以通过在FileOutputStream 的构造函数后面添加true 来避免这种情况。布尔值决定是否要附加到文件。默认是你不想追加数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 2023-04-06
    • 2014-05-01
    • 2019-11-25
    • 2021-03-30
    • 2013-08-12
    • 2015-01-11
    相关资源
    最近更新 更多