11

好的,我在将多行写入文本文件时遇到了一些麻烦。

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

当我希望它运行 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();
}

}
4

3 回答 3

20

确保在创建 a 的实例时FileWriter附加到它的末尾。这可以通过使用此特定FileWriter构造函数来完成,该构造函数将附加boolean参数作为第二个参数。这boolean告诉FileWriter追加到文件的末尾,而不是覆盖文件。

BufferedWriter outStream= new BufferedWriter(new FileWriter("encoded.txt", true));
于 2012-05-29T18:02:58.907 回答
6

默认情况下FileWriter会覆盖文件。您可能想要做的是按以下方式定义阅读器:
new FileWriter("encoded.txt", true)
这样文件将被附加到而不是被覆盖

希望这可以帮助!

于 2012-05-29T18:04:22.887 回答
0

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

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

于 2012-05-29T18:10:05.213 回答