Java FileWriter - 追加文本文件的一行

7
我在GUI中有一个按钮,当用户按下该按钮时,可以向文本文件添加信息。我已经完成了这一部分的设置,但是困扰我的问题是,当用户写入文件时,它会擦除文本文件中的所有信息,只剩下刚刚添加的新行。我需要添加信息并仍然保留文本文件中的原始信息。我认为追加命令可以做到这一点,但显然我做错了什么。任何帮助都将非常棒!
以下是我的代码:
FileWriter fWriter = null;
    BufferedWriter writer = null;
    try {
        fWriter = new FileWriter("info.txt");
        writer = new BufferedWriter(fWriter);


        writer.append(javax.swing.JOptionPane.showInputDialog(this, "add info"));
        writer.newLine();
        writer.close();
    } catch (Exception e) {
    }
2个回答

11

使用带有bool append参数的构造函数。有关此内容,请参阅FileWriter的Java文档。

fWriter = new FileWriter("info.txt", true);

在这里(sun JVM @ ubuntu),看起来当仅使用FileWriter(“info.txt”)时,首选是追加。有没有可能这是平台相关的,而在“默认”构造函数的文档中没有实际警告? - PypeBros

2
您需要使用writer.flush()。默认情况下,PrintWriter会自动刷新,但是Writers不会。

1
close()会刷新,这里不需要。 - Mat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接