2011-04-10 53 views
7

我在GUI中有一个按钮,当按下按钮时,用户可以将信息添加到文本文件。我有这部分设置很好,但是与我混淆的是,当用户写入文件时,它会擦除​​文本文件中的所有信息,剩下的唯一一行是刚刚添加的新行。我需要添加信息并仍然保留文本文件中的原始信息。我认为附加命令能够做到这一点,但我显然做错了什么。任何帮助都是极好的!Java FileWriter - 附加文本文件行

这里是我的代码:

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) { 
    } 

回答

1

你需要writer.flush()PrintWriter默认情况下自动刷新,但不是Writers

+1

'close()'会刷新,这里没有必要。 – Mat 2011-04-10 18:45:41

11

使用带有bool append参数的构造函数。请参阅javadocs的FileWriter

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

这里(sun JVM @ ubuntu),它看起来像使用FileWriter(“info.txt”)时,append是首选。在“默认”构造函数的文档中没有实际警告的情况下,任何可能会依赖于平台的机会? – PypeBros 2011-04-12 13:18:24