Java filewriter覆盖文件而不是追加到结尾时出现问题

Java filewriter覆盖文件而不是追加到结尾时出现问题,java,file,filewriter,Java,File,Filewriter,好的,我在将多行写入文本文件时遇到一些问题 程序运行,但不会每次都使用新行 当我希望它运行4次时,文本文件应该如下所示: a b c d 相反,它看起来像: d 谁知道如何解决这个问题?所有导入都已正确导入 来源(已稍微编辑,假设所有内容都已正确定义): 确保在创建FileWriter的实例时,将其附加到其末尾。这可以通过使用来完成,它将另一个布尔值作为第二个参数。这个布尔值告诉文件编写器附加到文件末尾,而不是覆盖文件 BufferedWriter outStream= new Buffer

好的,我在将多行写入文本文件时遇到一些问题

程序运行,但不会每次都使用新行

当我希望它运行4次时,文本文件应该如下所示:

a
b
c
d
相反,它看起来像:

d
谁知道如何解决这个问题?所有导入都已正确导入

来源(已稍微编辑,假设所有内容都已正确定义):


确保在创建
FileWriter
的实例时,将其附加到其末尾。这可以通过使用来完成,它将另一个
布尔值
作为第二个参数。这个
布尔值
告诉
文件编写器
附加到文件末尾,而不是覆盖文件

BufferedWriter outStream= new BufferedWriter(new FileWriter("encoded.txt", true));

默认情况下,
FileWriter
将覆盖该文件。您可能希望以以下方式定义读取器:
newfilewriter(“encoded.txt”,true)

这样,文件将被追加,而不是被覆盖。


希望这有帮助

我不确定这段代码应该做什么。如果输入字符串的长度超过一个字符,则会引发错误,因为您在循环中关闭了FileWriter,然后再次尝试写入


我用以下方式解释您的问题:您想知道为什么文件中只有最新的输出。在这种情况下,这是因为您没有在追加模式下创建FileWriter。查看FileWriter可用的不同构造函数,并使用允许附加到文件的构造函数。

只是一个警告,但这与“代码是什么”的问题非常接近。然而,由于您并不是简单地寻求帮助(您展示了您迄今为止所做的一切),我将对此视而不见。
输出未定义,因此显然无法编译。我假设它运行了4次,每次都将
输出设置为字母表中的后续字母。如果
“a\nb\n\c\nd\n”
output
的值,那么解决方案显然会大不相同。我对java的输入和输出有点陌生,所以我能举个例子吗?我现在不是进行测试的理想场所(这个工作站上没有JDK或IDE),我的答案已经提供了您应该应用的更改,以使这项工作正常进行。谢谢您的回答。我使用的第二个参数为true,并且在应用程序的同一运行期间,它很好地附加了第二个参数。但当我再次启动同一个应用程序时(第二个参数为true),它会销毁上一次运行会话的所有信息,然后再次很好地追加。。。当我尝试实现我自己的原始记录器,并希望在日志中保留所有信息。。。有什么线索吗?
BufferedWriter outStream= new BufferedWriter(new FileWriter("encoded.txt", true));