老师我这里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回答

好帮手慕阿园

2020-12-08

同学你好,出现这个异常是因为同学先关闭了fos1,而bos用到了fos1这个流,所以调用flush()或者close()方法时fos1已经关闭,所以就会出现这个异常

同学将bos.flush();或者bos.close();放在关闭fos1的上面

另外,关闭流时一般是先打开的后关闭,后打开的先关闭

祝学习愉快

0

0 学习 · 16556 问题

查看课程