Java 流中 flush() 的用途是什么?

新手上路,请多包涵

在 Java 中,流中使用了 flush() 方法。但是我不明白使用这种方法的目的是什么?

 fin.flush();

告诉我一些建议。

原文由 Venkat 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 946
2 个回答

来自 flush 方法的 文档

刷新输出流并强制写出任何缓冲的输出字节。 flush 的一般契约是调用它表明,如果先前写入的任何字节已被输出流的实现缓冲,则应立即将这些字节写入其预期目的地。

缓冲主要是为了提高 I/O 性能。有关这方面的更多信息,请阅读这篇文章: Tuning Java I/O Performance

原文由 codaddict 发布,翻译遵循 CC BY-SA 3.0 许可协议

当您将数据写入流时,它不会立即写入,而是被缓冲。因此,当您需要确保缓冲区中的所有数据都已写入时,请使用 flush()

我们需要确保在关闭流之前完成所有写入,这就是为什么 flush() 在文件/缓冲写入器的 close() --- 中被调用的原因。

但是,如果您要求在关闭流之前随时保存所有写入,请使用 flush()

原文由 Biman Tripathy 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题