java-使用BufferedWriter更新文本文件

我正在使用BufferedWriter写入文本文件,但是BufferedWriter不会写入文件,直到我正在运行的程序完成并且我不确定如何更新它,因为BufferedWriter可能正在编写.这是我的一些代码:

FileWriter fw = null;
try {
    fw = new FileWriter("C:/.../" + target + ".pscr",true);
    writer = new BufferedWriter(fw);
    writer.write(target);
    writer.newLine();
    writer.write(Integer.toString(listOfFiles.length));
    writer.newLine();
    for(int i=0; i < listOfFiles.length; i++){
        writer.write(probeArray[i] + "\t" + probeScoreArray[i]);
        writer.newLine();                               
    }                           
}
catch (IOException e1) {e1.printStackTrace();}
catch (RuntimeException r1) {r1.printStackTrace();}
finally {
    try {
        if(writer != null){
            writer.flush();
            writer.close();
        }
    }
    catch (IOException e2) {e2.printStackTrace();}
}

我确实刷新了BufferedWriter,但是在写入时仍然没有文件,而是在程序完成时.有什么建议么?

解决方法:

您需要将flush()调用移到try块中.例如,在每个newLine()调用之后.

也就是说,flush()最终是多余的,因为close()已经隐式调用了它.

上一篇:其他流---字节数组流与文件流对接


下一篇:PHP刷新和WAMP服务器