一般情况下是:先打开的后关闭,后打开的先关闭
另一种情况:看依赖关系,如果流a依赖流b,应该先关闭流a,再关闭流b
例如处理流a依赖节点流b,应该先关闭处理流a,再关闭节点流b
当然完全可以只关闭处理流,不用关闭节点流。处理流关闭的时候,会调用其处理的节点流的关闭方法
如果将节点流关闭以后再关闭处理流,会抛出IO异常;
-
FileOutputStream fos = new FileOutputStream("f:\\william");
-
OutputStreamWriter osw = newOutputStreamWriter(fos);
-
BufferedWriter bw = newBufferedWriter(osw);
-
bw.write("hello world!");
正确关闭流的顺序是:
-
bw.close();
-
osw.close();
- fos.close();