黑马程序员技术交流社区

标题: 字节流为什么不需要刷新? [打印本页]

作者: jagon    时间: 2014-3-13 13:55
标题: 字节流为什么不需要刷新?
上课时,毕老师说字节流不需要刷新,有点没有听懂,想了好久也搞不通,谁能帮我分析一下?多谢,多谢!

截图00.png (124.15 KB, 下载次数: 153)

截图00.png

作者: ixiangfeng    时间: 2014-3-13 14:18
zengming13 发表于 2014-3-13 14:00
严格的说,都必需刷新,因为所有的流都有可能缓存数据
只是因为字符流的现象太明显,造成这种现象的原因是 ...

我前段时间就试过出现这个问题  用字节流复制图片时要刷新  不刷新的话后面一部分总是复制不完整 但老毕一直说字节流不用刷新 有点误导的意味 后来想想 如果字节流不需要刷新的话那为什么它也要有刷新这个方法呢 所以我想字节流在某些情况下也是要刷新的
作者: 75100313    时间: 2014-3-13 14:58
ixiangfeng 发表于 2014-3-13 14:18
我前段时间就试过出现这个问题  用字节流复制图片时要刷新  不刷新的话后面一部分总是复制不完整 但老毕 ...

你没听仔细  字节流不需要刷新  但是只要是带有buffered缓冲的都需要刷新 不管是字节流还是字符流都需要flush();
作者: ixiangfeng    时间: 2014-3-13 15:09
75100313 发表于 2014-3-13 14:58
你没听仔细  字节流不需要刷新  但是只要是带有buffered缓冲的都需要刷新 不管是字节流还是字符流都需要f ...

你回去看看老毕的代码 用BufferedOutputStream的write方法时也不用刷新的
作者: 何伟超    时间: 2014-3-13 15:16
刷新是为了释放缓冲区 内的空间到输出流。为了运行更加的快捷,如果一直不刷新,就会造成缓冲区阻塞的,水管都堵了还怎么运行呢?是吧!
作者: 文江江    时间: 2014-3-13 17:06
使用刷新的原意是将缓冲区的数据存储到设备上,有些流没有使用缓冲区当然不用flush(),例如FileOutputStream就没有使用缓冲区,所以不用啦,不能以偏概全啦
作者: 艮昕辶    时间: 2014-3-13 22:52
处理方法不一样吧

162655699.jpg (31.53 KB, 下载次数: 163)

162655699.jpg

作者: 狙神自傲    时间: 2015-5-12 11:33
百度这个问题最终百度回到黑马论坛。。




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