黑马程序员技术交流社区

标题: java输出流中flush方法什么时候使用? [打印本页]

作者: space2007    时间: 2014-7-24 00:19
标题: java输出流中flush方法什么时候使用?
本帖最后由 space2007 于 2014-7-24 10:07 编辑

在看毕老师的视频时,发现毕老师说文件比较小,就不用刷新了(调用flush方法),调用close方法时会刷新将数据写入目的地。

flush方法的作用是将内存缓冲区中的数据真正写到目的地中,查看Writer源代码发现定义了一个1024的buffer,是不是说所操作的文件大于1k时必须要刷新呢?

flush什么时候可以不调用?

作者: 花花公子    时间: 2014-7-24 00:29
应该是Writer的时候都要用到的,要不然写不到文件中去,这个不看文件大小吧
作者: wisely    时间: 2014-7-24 00:37
按我的做法,全刷……
作者: 付江涛    时间: 2014-7-24 08:51
因为close()就是关闭流之前刷新流。 因为操作的文件大于1k,需要循环几次才能写入完毕,所以需要每次循环最后刷新一下。当循环一次就足够时,只在最后需要close(),关闭留并且刷新。
作者: 痞子、蔚    时间: 2014-7-24 17:08
你写的文件较大时,在循环内flush,最后再close
作者: fantacyleo    时间: 2014-7-24 18:55
我从来不刷,实际上API文档已经说了,只要你写入的数据超过缓冲区容量,缓冲区之前的内容就会自动flush,根本无需手动刷。
作者: 晓风    时间: 2014-7-24 19:34
你可以在每写1k的时候就循环一次就调用一次,当你关闭流的时候,也会调用一次flush然后再关闭流。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2