Java 流中的flush() 的用途是什么?
在Java中,flush()
方法用于流中。但我不明白使用这种方法的目的是什么?
fin.flush();
告诉我一些建议。
In Java, flush()
method is used in streams. But I don't understand what are all the purpose of using this method?
fin.flush();
tell me some suggestions.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(7)
萌面超妹2024-08-30 09:20:57
如果缓冲区已满,则缓冲在其上的所有字符串都将保存到磁盘上。缓冲区用于避免大交易!和开销。
在位于 java libs 中的 BufferedWriter 类中,有一行如下:
private static int defaultCharBufferSize = 8192;
如果您确实想在缓冲区满之前发送数据,您确实有控制权。只需冲洗即可。调用 writer.flush() 会说:“立即发送缓冲区中的所有内容!
参考书: https://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208
页数:453
萌梦深2024-08-30 09:20:57
除了这里的其他很好的答案之外,这个解释对我来说非常清楚:
缓冲区是内存中用于存储数据流的一部分
(人物)。这些字符有时只会被发送到
当缓冲区已满或满足一个输出设备(例如监视器)
一定数量的字符。如果您这样做,这可能会导致您的系统滞后
只需要发送到输出设备的几个字符。冲洗()
方法将立即将缓冲区的内容刷新到输出
流。
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
流通常由定期清空其内容的线程访问,例如,将其显示在屏幕上、将其发送到套接字或将其写入文件。这样做是出于性能原因。刷新输出流意味着您要停止,等待流的内容完全传输到其目的地,然后在流清空并发送内容的情况下恢复执行。
Streams are often accessed by threads that periodically empty their content and, for example, display it on the screen, send it to a socket or write it to a file. This is done for performance reasons. Flushing an output stream means that you want to stop, wait for the content of the stream to be completely transferred to its destination, and then resume execution with the stream empty and the content sent.