我有一些像这样的代码:
PrintWriter pw = new PrintWriter(new BufferedReader(....));
for(int i=0; i<10; i++) {
pw.println("a");
pw.flush();// flush each time when println()?
}
pw.close();
Run Code Online (Sandbox Code Playgroud)
每个'for'语句中的flush()是否必然?我听说flush()会在调用close()时自动调用.如果我写这样的代码:
PrintWriter pw = new PrintWriter(new BufferedReader(....), true);
Run Code Online (Sandbox Code Playgroud)
我不会再写pw.flush()了吗?谢谢.
NPE*_*NPE 22
flush()是可能不是在你的榜样必需的.
它的作用是确保在调用之前写入编写器的任何内容都写入flush()底层流,而不是放在某个内部缓冲区中.
该方法在几种情况下派上用场:
如果另一个进程(或线程)需要在写入文件时检查该文件,则另一个进程看到所有最近的写入是很重要的.
如果写入过程可能会崩溃,那么重要的是不会丢失对文件的写入.
如果您正在写入控制台,并且需要确保每条消息在写入后立即显示.
| 归档时间: |
|
| 查看次数: |
35083 次 |
| 最近记录: |