我正在尝试在单击JButton时将时间戳写入文件。调用.close()
后,数据将写入文件,任何其他写入都会引发错误。如何编写数据而无需创建新的FileWriter并覆盖上一行?
答案 0 :(得分:3)
在flush()
对象上调用FileWriter
,而不是关闭,这会隐含这一点。这使它保持打开状态,但强制将已缓冲的数据写入文件。
完成写作后不要忘记close()
。
答案 1 :(得分:0)
您可以在单击之间保持编写器打开并在其他时间(可能在表单退出时)关闭它,或者您可以为每次单击创建一个新的FileWriter并将其附加到文件中已有的内容。
FileWriter writer = new FileWriter("output.txt", true); //true here indicates append to file contents
如果您选择在点击之间保持作者打开,那么您可能希望在按下每个按钮时调用.flush()以确保文件是最新的。
答案 2 :(得分:0)
试试这个,
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Wr {
public static void main(String[] args) throws IOException {
File f = new File("viv.txt");
FileWriter fw = new FileWriter(f, true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write("Helloooooooooo");
bw.close();
}
}