Ven*_*kat 110 java flush java-stream
在Java中,flush()方法用于流中.但我不明白使用这种方法的目的是什么?
fin.flush();
Run Code Online (Sandbox Code Playgroud)
告诉我一些建议.
cod*_*ict 94
从文档中的flush方法:
刷新输出流并强制写出任何缓冲的输出字节.flush的一般契约是调用它表示,如果先前写入的任何字节已被输出流的实现缓冲,则应立即将这些字节写入其预期目的地.
缓冲主要是为了提高I/O性能.有关这方面的更多信息,请参阅本文:调优Java I/O性能.
小智 26
当我们发出任何命令时,该命令的流存储在我们计算机中称为缓冲区(临时内存位置)的内存位置.当所有临时内存位置都已满时,我们使用flush(),它刷新所有数据流并完全执行它们,并为缓冲区临时位置中的新流提供新空间. - 希望你明白
Bim*_*thy 24
将数据写入流时,不会立即写入,而是缓冲.因此,当您需要确保写入缓冲区中的所有数据时,请使用flush().
我们需要确保在关闭流之前完成所有写操作,这就是在文件/缓冲编写器的close()中调用flush()的原因.
但是,如果您要求在关闭流之前随时保存所有写入,请使用flush()
如果缓冲区已满,所有缓冲在其上的字符串将被保存到磁盘上.缓冲区用于避免大交易!和开销.
在放置在java libs中的BufferedWriter类中,有一行如下:
private static int defaultCharBufferSize = 8192;
Run Code Online (Sandbox Code Playgroud)
如果您确实希望在缓冲区已满之前发送数据,则可以进行控制.只是冲洗它.调用writer.flush()说,"现在发送缓冲区中的任何内容!
参考书:https://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208
页数:453
除了这里的其他很好的答案之外,这个解释对我来说非常清楚:
缓冲区是内存中用于存储数据流(字符)的部分。有时,只有当缓冲区已满或达到一定数量的字符时,这些字符才会被发送到输出设备(例如监视器)。如果您只有几个字符要发送到输出设备,这可能会导致您的系统滞后。flash() 方法将立即将缓冲区的内容刷新到输出流。
来源:https ://www.youtube.com/watch?v=MjK3dZTc0Lg
| 归档时间: |
|
| 查看次数: |
209757 次 |
| 最近记录: |