有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一个要求,写一个文件,而不是在系统中。出来println并同时保存,以便用户可以通过打开文件随时查看进度

现在我正在使用以下代码

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

但它不会将内容保存到文件中,除非我说出来。close()

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

有没有更简单的方法?有什么建议吗


共 (3) 个答案

  1. # 1 楼答案

    你也可以这样做

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

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

  2. # 2 楼答案

    简单的答案是OutputStream#flush()。悲哀的答案是,在现实中,在很多Java EE部署中,这将很难保证,在JVM和虚拟化云技术中,f_sync()已经失去了曾经的承诺

  3. # 3 楼答案

    你不需要调用close()——只要调用flush()

    Flushes this output stream and forces any buffered output bytes to be written out.