关于flush()方法

q348281373 2016-08-15 09:41:21
我知道缓冲流的close方法会自动调用flush方法刷新缓冲区
FileOutputStream的close没有写会自动调用flush
那为什么FileOutputStream流的close不刷flush也不会丢失数据呢
...全文
392 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sean_0xiao 2016-08-15
  • 打赏
  • 举报
回复
PrintWriter是缓冲字符流,在往文件中进行写入操作时,它是首先将要写入的数据保存在缓冲区中,等缓冲区满了之后再将缓冲区的数据写入到文件中。flush()函数就是不管缓冲区满没满就将缓冲区的数据写入文件中;而FileOutputStream中就不存在这种机制。如果PrintWriter缓冲字符流中没有flush(),close()执行时,就将缓冲区的数据写入到文件中。
dzq584462393 2016-08-15
  • 打赏
  • 举报
回复
因为没有缓存,在存在缓存的输出流中在关闭之前必须flush

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧