java关闭流的两种方法

当使用完流后,关闭所有打开的流仍然是一个好习惯。一个被打开的流有可能会用尽系统的资源,这取决于平台和实现。如果没有将流关闭,另一个程序试图打开另一个流时,可能会得到不需要的资源。

有两种关闭方式:

​ 如下:

jdk1.7之前

方法一:手动关闭,即为使用close(),部分代码如下:

FileWriter fw = null;

try {

fw = new FileWriter("test\\test.txt");

fw.write("test");

}catch (Exception e) {

e.printStackTrace();

}finally {

//

if(fw != null) {

try {

fw.close(); // 关闭

} catch(IOException e) {

e.printStackTrace();

}

}

}

jdk1.8

方法二:自动关闭,即为使用try语句自动关闭流,部分代码如下:

// 直接在try()中创建流对象 会默认关闭

try(FileWriter fw = new FileWriter("test.txt")) {

fw.write("test");

} catch(Exception ex) {

ex.printStackTrace();

}//try..catch语句结束后自动关闭

编译后文件:

注:可以使用该方式关闭流的前提是对象一定要实现AutoCloseable接口,其原理还是在编译的时候JDK给我们生成了finally来关闭流

好文推荐

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: