麻烦的FileWriter覆盖文件,而不是追加到年底麻烦的FileWriter覆盖文件,而不是追加到

2019-05-16 15:47发布

好吧,我有一些麻烦,写多行到一个文本文件中。

程序运行,但它不会使用新的生产线,每次

当我想它运行4次,文本文件应该是这样的:

a
b
c
d

相反,它是这样的:

d

谁知道如何解决这个问题? 所有进口正确导入。

源(它被略加编辑,承担一切都正确定义):

import java.io.*;
public class Compiler {
public static void main (String args[]) throws IOException
{
    //there's lots of code here
    BufferedWriter outStream= new BufferedWriter(new FileWriter("output.txt"));
    outStream.newLine();
    outStream.write(output);
    outStream.close();
}

}

Answer 1:

确保当你创建一个实例FileWriter ,你是追加到它的结束。 这可以通过使用来完成这一特定FileWriter构造这需要额外的boolean作为第二参数。 这boolean告诉FileWriter附加到文件末尾,而不是覆盖该文件。

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


Answer 2:

默认情况下FileWriter将覆盖该文件。 你可能会想要做的是确定通过以下方式阅读:
new FileWriter("encoded.txt", true)
这样,该文件将被的而不是被 。

希望这可以帮助!



Answer 3:

我不知道这是什么代码是应该做的。 如果你输入的字符串多于一个字符长,因为你闭上你的FileWriter内循环,然后尝试再次写入它抛出一个错误。

我解释你的问题的方式如下:你想知道为什么只有最近输出的文件中。 在这种情况下,那是因为你没有创建附加模式您的FileWriter。 看看可供FileWriter的不同构造,并使用一个允许您将追加到该文件。



文章来源: Trouble with filewriter overwriting files instead of appending to the end