关于用缓冲流拷贝图片的问题

关于用缓冲流拷贝图片的问题

这是正确的:http://img1.sycdn.imooc.com//climg/5f1fce6b0999136207480867.jpg

这是错误的:

http://img1.sycdn.imooc.com//climg/5f1fce9f09c5a75d12650861.jpg

为什么不用flush()时会触发IOException的异常呢?close不是也能进行清空缓存区的操作码?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,根据报错信息java.io.IOException: Stream closed.  

stream流已经被关闭。IO流应该先开后关,就是先开的IO流要后关闭。按照同学代码,应该依次关闭bos,fos,bis,fis流。

祝学习愉快~

TryMyBestToDo 提问者 2020-07-28 18:14:41


http://img1.sycdn.imooc.com//climg/5f1ff97b091a3f1c17630793.jpg

对此,我还发现了一个奇怪的现象,刚刚我试了一下不定义文件输入输出流,直接BufferedInputStream bis=new BufferedInputStream(new FileInputStream("Primary.JPG");

这样就不用写文件输入输出流的close();

这种情况下有没有bos.flush();程序都不会报错了。奇怪

好帮手慕阿慧 2020-07-28 16:12:39

同学你好,老师这边测试是没有问题的,不使用flush()不会触发IOException。

建议同学在catch中调用printStackTrace()方法,查看一下错误原因。

如下:

http://img1.sycdn.imooc.com//climg/5f1fdde0091f47c403340153.jpg

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师