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

来源:3-14 缓冲流案例

TryMyBestToDo

2020-07-28 15:08:58

这是正确的:http://img.mukewang.com/climg/5f1fce6b0999136207480867.jpg

这是错误的:

http://img.mukewang.com/climg/5f1fce9f09c5a75d12650861.jpg

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

写回答

3回答

好帮手慕阿慧

2020-07-28

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

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

祝学习愉快~

0

TryMyBestToDo

提问者

2020-07-28


http://img.mukewang.com/climg/5f1ff97b091a3f1c17630793.jpg

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

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

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

0

好帮手慕阿慧

2020-07-28

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

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

如下:

http://img.mukewang.com/climg/5f1fdde0091f47c403340153.jpg

祝学习愉快~

0

0 学习 · 16556 问题

查看课程