在学java时老师一直强调要用完流要关闭流,但有一个问题我一直没清楚,就是装饰流该怎么个关闭,通常我们是这样关闭的:
...
FileWriter fw = new FileWriter(fileName);
BufferedWriter bw = new BufferedWriter(fw);
...
fw.close();
bw.close();
...
但我感觉太累赘,既然fw被bw装饰了,bw关闭的同时是否fw也被关闭呢?
或者fw被关闭了的话,bw是否同时也被关闭,毕竟它们用的是一个流通道。
假如fw,bw都需要被关闭的话,它们关闭的顺序有要求吗?就是关闭的先后
顺序改变会有影响吗。
我还见到一只情况,如果bw是这样创建的:
...
BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));
...
这样我们就取不到fw了,怎么办?
换一种创建方法呗,不直接new
第一种写法,流是要一个一个关闭的,且是要按顺序的!
第二种写法,只需关闭最外层的流!
简单点说,只要创建了流的实例,都要关闭!