关于用缓冲流拷贝图片的问题
来源:3-14 缓冲流案例
TryMyBestToDo
2020-07-28 15:08:58
这是正确的:
这是错误的:

为什么不用flush()时会触发IOException的异常呢?close不是也能进行清空缓存区的操作码?
3回答
同学你好,根据报错信息java.io.IOException: Stream closed.
stream流已经被关闭。IO流应该先开后关,就是先开的IO流要后关闭。按照同学代码,应该依次关闭bos,fos,bis,fis流。
祝学习愉快~
TryMyBestToDo
提问者
2020-07-28

对此,我还发现了一个奇怪的现象,刚刚我试了一下不定义文件输入输出流,直接BufferedInputStream bis=new BufferedInputStream(new FileInputStream("Primary.JPG");
这样就不用写文件输入输出流的close();
这种情况下有没有bos.flush();程序都不会报错了。奇怪
好帮手慕阿慧
2020-07-28
同学你好,老师这边测试是没有问题的,不使用flush()不会触发IOException。
建议同学在catch中调用printStackTrace()方法,查看一下错误原因。
如下:

祝学习愉快~
相似问题