flush和close方法
flush和close方法
flush() 与 close() 常见于 IO 流(输入流/输出流)与缓冲流中,用于控制数据从内存缓冲区写入到底层目标(文件、网络等),以及释放资源。
flush 做什么
- 把“已经写到缓冲区但尚未落地”的数据强制写出去
- 适用场景:
- 你需要确保对方/文件立刻看到数据(例如实时日志、网络推送)
- 使用了缓冲输出(Buffered*)时尤其重要
close 做什么
- 释放系统资源(文件句柄、网络连接等)
- 对输出流而言,
close()通常会隐式执行一次flush()(具体取决于实现) - 关闭后一般不可再写入/读取
工程建议
- 优先使用 try-with-resources 自动关闭资源,避免泄漏
- 对长连接/持续输出场景,按需
flush(),避免每次写都 flush 导致性能下降
