• 欢迎访问天天编码网站,Java技术、技术书单、开发工具,欢迎加入天天编码
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏天天编码吧
  • 我们的淘宝店铺已经开张了哦,传送门:https://shop145764801.taobao.com/

Java中如何正确地关闭文件

Java基础 tiantian 1221次浏览 0个评论 扫描二维码

我们知道,无论是在操作系统底层,还是对于JVM而言,文件都是一种非常昂贵的资源,如果不能正确地关闭,严重时,可能导致应用的崩溃。在仔细观察和分析各种Java的开源库之后,发现,Java程序员具有三种常见的关闭文件的方式。第一种是把 close() 方法放在了 try 语句块中,第二个方式把 close() 方法放在了 finally 语句块中,第三种使用了JDK7中引入的 try-with-resource 语句。那么,哪一个才是正确的,最好的呢?

Java中如何正确地关闭文件

示例代码

//close() is in try clause
try {
PrintWriter out = new PrintWriter(
new BufferedWriter(
new FileWriter("out.txt", true)));
out.println("the text");
out.close();
} catch (IOException e) {
e.printStackTrace();
}
//close() is in finally clause
PrintWriter out = null;
try {
out = new PrintWriter(
new BufferedWriter(
new FileWriter("out.txt", true)));
out.println("the text");
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
out.close();
}
}
//try-with-resource statement
try (PrintWriter out2 = new PrintWriter(
new BufferedWriter(
new FileWriter("out.txt", true)))) {
out2.println("the text");
} catch (IOException e) {
e.printStackTrace();
}

总结

上述的三种方式中,第一种是错误的。因为,第一种方式不能够在文件操作出现异常时正确关闭文件,所以应该把 close() 方法放在 finally 语句块中。第三种方式其实是Java对于第一种方式提供的语法糖,从JDK7开始,建议使用更加简洁的第三种方式。


天天编码 , 版权所有丨本文标题:Java中如何正确地关闭文件
转载请保留页面地址:http://www.tiantianbianma.com/java-close-file.html/
喜欢 (1)
支付宝[多谢打赏]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址