如何在不覆盖Java中的当前内容的情况下写入外部文本文件

时间:2015-11-26 20:10:02

标签: java arraylist bluej copyonwritearraylist

我正在尝试将错过的回复写入外部文本文件。以下方法存储的响应未被识别到外部文本文件中,但会覆盖先前的内容。如何阻止它被覆盖?

//写一个列表方法

10

//我在这个方法中调用它

       public void writeAList(ArrayList<String> list, String filename)
        {
            if(list != null) {
                try (FileWriter writer = new FileWriter(filename)) {
                    for(String item : list) {
                        writer.write(item.trim());
                        writer.write('\n');
                    }                    
                }
                catch(IOException e) {
                    System.out.println("Problem writing file: " + filename +
                                       " in writeAList");
                }
            }
            else {
                System.out.println("Null list passed to writeAList.");
            }
        }

2 个答案:

答案 0 :(得分:1)

而不是 new FileWriter(filename)

尝试

new FileWriter(filename, true)

在附加模式下创建文件编写器,请参阅文档here

答案 1 :(得分:0)

在您的代码中,您需要替换:

FileWriter writer = new FileWriter(filename)

使用:

FileWriter writer = new FileWriter(filename, true)

额外参数true用于启用追加模式。