黑马程序员技术交流社区
标题:
IO关闭顺序问题
[打印本页]
作者:
邝雄伟
时间:
2013-2-2 15:30
标题:
IO关闭顺序问题
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
public class IOTest {
public static void main(String[] args) throws Exception {
FileOutputStream fos = new FileOutputStream("d:\\test.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
BufferedWriter bw = new BufferedWriter(osw);
bw.write("java IO 流的关闭顺序测试");
//这种关闭顺序会报异常: java.io.IOException: Stream closed
fos.close();
osw.close();
bw.close();
//这种关闭顺序则不会报异常
//bw.close();
//osw.close();
//fos.close();
}
}
所有打开的IO流必须按照第二种方式依次关闭吗? 为啥第一种会报 Stream closed 异常?
作者:
杨浩
时间:
2013-2-2 15:55
嗯 - -
你直接只关闭最外层的就行了,bw.close();
关闭bw.close();的时候,它自己会一层层的关闭的。。。
还有看到有人发了Java1.7新特性,会自动关闭资源咯,到时候你就可以只开不用考虑关了。。。
但是我想,如果为了节约系统资源,手动关闭的话,释放资源应该会快一些。
作者:
Just_Only
时间:
2013-2-2 15:56
你得看他们三个之间的关系,如果不是按的他们的顺序的关闭的就会报异常
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2