如何写入文件并在java中动态保存

时间:2012-06-25 22:36:53

标签: java java-io

我有一个要求写入文件而不是System.out.println的请求并同时保存它,以便用户可以通过打开文件随时查看进度。

现在我正在使用以下代码

     FileWriter fstream = null;
        File file1 = new File(logFile);
        fstream = new FileWriter(file1);
        out = new BufferedWriter(fstream);
               out.write(msg);
     out.write("\n");

但除非我说出Out.close();

,否则它不会将内容保存到文件中

仅供参考 - 1.这是一个Java EE应用程序代码。       2.我不想使用Log4jLogger

有没有更简单的方法呢?有什么指针吗?

3 个答案:

答案 0 :(得分:7)

您无需致电close() - 只需致电flush()

  

刷新此输出流并强制执行任何缓冲的输出字节   写出来。

答案 1 :(得分:0)

简短回答是OutputStream#flush()。令人遗憾的答案是,实际上在许多Java EE部署中难以保证,使用JVM和虚拟化云计算的东西,其中f_sync()失去了曾经拥有的承诺。

答案 2 :(得分:0)

你也可以这样做。

PrintWriter out = new PrintWriter(logFile, "UTF-8");
out.println(msg);
out.flush();

如果您要求在特定时间输出,请使用flush()方法。此外,通过这种方式,您可以为输出文件指定编码。