文件流关闭顺序问题

时间:2022-08-15 23:51:41
写了一个简单的记事本程序
在保存文件的时候遇到问题
如下
bw.close();  //bufferedwriter 
fw.close();  //filewriter
如果先关闭bufferedwriter 再关闭filewriter就没有问题
如过反过来 先关闭filewriter 再关闭bufferedwriter 
就会报   java.io.IOException: Stream closed
求助了 谢谢

8 个解决方案

#1


我想楼主是用BufferedWriter来包装FileWriter的,所以应该先关闭bw,然后关闭fw。其实楼主完全可以只关闭包装类bw,不用关闭fw。当你关闭了包装类之后,会自动关闭被包装的类。

#2


最外面的流,最后关闭

#3


1楼正解

#4


fw是自来水管 bw是套在自来水管上面的管子
你先关了自来水管 管子自然也就没水了 就不用关了
如果你关了管子 自来水管也相当于关了

。。有点乱

#5


关电闸和关电灯的关系


应该最后关电闸或者只需关电闸

#6


包装流关闭的时候,会调用被包装流的关闭方法,你已经将被包装流先行关闭了,又再去关闭包装流,当然会报错了

#7


引用 2 楼 frankgoahead 的回复:
最外面的流,最后关闭


反了吧...

#8


<fieldset><legend>引用 2 楼 frankgoahead 的回复:</legend><br /><br />最外面的流,最后关闭<br /></fieldset>

最外面的流  指的的 最先打开的流吧 。。哈

#1


我想楼主是用BufferedWriter来包装FileWriter的,所以应该先关闭bw,然后关闭fw。其实楼主完全可以只关闭包装类bw,不用关闭fw。当你关闭了包装类之后,会自动关闭被包装的类。

#2


最外面的流,最后关闭

#3


1楼正解

#4


fw是自来水管 bw是套在自来水管上面的管子
你先关了自来水管 管子自然也就没水了 就不用关了
如果你关了管子 自来水管也相当于关了

。。有点乱

#5


关电闸和关电灯的关系


应该最后关电闸或者只需关电闸

#6


包装流关闭的时候,会调用被包装流的关闭方法,你已经将被包装流先行关闭了,又再去关闭包装流,当然会报错了

#7


引用 2 楼 frankgoahead 的回复:
最外面的流,最后关闭


反了吧...

#8


<fieldset><legend>引用 2 楼 frankgoahead 的回复:</legend><br /><br />最外面的流,最后关闭<br /></fieldset>

最外面的流  指的的 最先打开的流吧 。。哈