【问题标题】:How can I write to an external text file without overwriting current content in Java如何在不覆盖 Java 中的当前内容的情况下写入外部文本文件
【发布时间】:2016-03-01 00:03:24
【问题描述】:

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

//写一个列表方法

       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.");
            }
        }

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

public String generateResponse(ArrayList<String> words)
{
    Iterator<String> it = words.iterator();
    while(it.hasNext()) {
        String word = it.next();
        String response = responseMap.get(word);
        if(response != null) {
            return response;
        }
    }
    //If we get here, none of the words from the input line was recognized
    //In this case, a default response is returned
    //The words not recognised are stored in "missed.txt"
    helper.writeAList(words,"missed.txt");
    return pickDefaultResponse();

}

【问题讨论】:

标签: java arraylist bluej copyonwritearraylist


【解决方案1】:

而不是 new FileWriter(filename)

试试

new FileWriter(filename, true)

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

【讨论】:

    【解决方案2】:

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

    FileWriter writer = new FileWriter(filename)
    

    与:

    FileWriter writer = new FileWriter(filename, true)
    

    这里的额外参数true是启用追加模式。

    【讨论】:

    • 完美,谢谢,还有一个问题,如何让回复换行?目前它只是将所有内容写成一行?
    • @ashutosh 看起来你正在添加一个新行 ok ,所以它可能只是你用来查看文件的编辑器没有将 \n 显示为新行尝试将 \n 更改为 \ r\n
    猜你喜欢
    • 2014-04-21
    • 2021-05-21
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多