老师我这里bos.close()或者bos.flush()就会出现这个异常,不理解
来源:3-16 自由编程
别了娜塔莎
2020-12-08 14:09:50
# 具体遇到的问题
java.io.IOException: Stream Closed
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:326)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at com.imooc.io.IoTest.main(IoTest.java:22)
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
public static void main(String[] args) {
try {
FileOutputStream fos1 = new FileOutputStream("two.text");
BufferedOutputStream bos = new BufferedOutputStream(fos1);
long start = System.currentTimeMillis();
for (int i = 1; i <= 100000; i++) {
bos.write('b');
}
long end = System.currentTimeMillis();
System.out.println(end - start);
fos1.close();
bos.flush();//bos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
在这里输入代码,可通过选择【代码语言】突出显示
1回答
同学你好,出现这个异常是因为同学先关闭了fos1,而bos用到了fos1这个流,所以调用flush()或者close()方法时fos1已经关闭,所以就会出现这个异常
同学将bos.flush();或者bos.close();放在关闭fos1的上面
另外,关闭流时一般是先打开的后关闭,后打开的先关闭
祝学习愉快
相似问题