A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jagon 中级黑马   /  2014-3-13 13:55  /  3560 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

上课时,毕老师说字节流不需要刷新,有点没有听懂,想了好久也搞不通,谁能帮我分析一下?多谢,多谢!

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

截图00.png

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

7 个回复

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

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

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
ixiangfeng 发表于 2014-3-13 14:18
我前段时间就试过出现这个问题  用字节流复制图片时要刷新  不刷新的话后面一部分总是复制不完整 但老毕 ...

你没听仔细  字节流不需要刷新  但是只要是带有buffered缓冲的都需要刷新 不管是字节流还是字符流都需要flush();
回复 使用道具 举报
75100313 发表于 2014-3-13 14:58
你没听仔细  字节流不需要刷新  但是只要是带有buffered缓冲的都需要刷新 不管是字节流还是字符流都需要f ...

你回去看看老毕的代码 用BufferedOutputStream的write方法时也不用刷新的
回复 使用道具 举报
刷新是为了释放缓冲区 内的空间到输出流。为了运行更加的快捷,如果一直不刷新,就会造成缓冲区阻塞的,水管都堵了还怎么运行呢?是吧!

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
使用刷新的原意是将缓冲区的数据存储到设备上,有些流没有使用缓冲区当然不用flush(),例如FileOutputStream就没有使用缓冲区,所以不用啦,不能以偏概全啦

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
处理方法不一样吧

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

162655699.jpg

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
百度这个问题最终百度回到黑马论坛。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马