首先,我们看下面的代码。

BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("test.txt"));
br.readLine();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (br != null)
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}

有些资源使用完是需要释放的,通常我们在 finally 语句中做这件事情。这样的代码看上去会很乱,要是 Java 能帮我们自动释放资源就好了。我们的美好愿望实现了,Java SE 7 引入了 try-with-resources 语句,只要你的类实现了接口 java.lang.AutoCloseable, java 自动帮我们调用 close 方法释放资源,看看下面的代码吧,是不是非常整洁。

try (BufferedReader br = new BufferedReader(new FileReader("test.txt"))) {
br.readLine();
} catch (Exception e) {
e.printStackTrace();
}

http://blog.csdn.net/shangboerds/article/details/49493721

更加详细:

http://blog.csdn.net/hengyunabc/article/details/18459463

最新文章

  1. Linux服务器配置之加载硬盘
  2. Java实现过滤中文乱码
  3. Android 自定义spinner下拉框实现的实现
  4. Browser Link: Failed to deserialize JSON in Browser Link call
  5. ref和out与SQL中的output
  6. UIImagePickerController从拍照、图库、相册获取图片
  7. Swift - 使用位运算提取颜色,合并颜色
  8. 一旦ORA-28000: the account is locked用户锁定故障排除
  9. Sql server DATEADD日期函数的使用
  10. PHP实现水印效果(文字、图片)
  11. 简单介绍 CPU 的工作原理
  12. SpringMVC(一):搭建一个SpringMVC helloword项目
  13. Vue生命周期-手动挂载理解
  14. .NET移动开发,关于发布IOS的方法(本人亲身经历折腾很久终于成功)
  15. [POJ3630]Phone List (Tire)
  16. 虹软2.0 离线人脸识别 Android 开发 Demo
  17. 第二十节: 深入理解并发机制以及解决方案(锁机制、EF自有机制、队列模式等)
  18. es6 语法 (数值扩展)
  19. pygame-KidsCanCode系列jumpy-part9-使用spritesheet
  20. 函数重载(overload)

热门文章

  1. ApacheHttpServer修改httpd.conf配置文件
  2. 微信小程序(5)--阅读器
  3. Git--03 git分支
  4. HDU 5634 线段树
  5. HTML5知识点总结(一)
  6. 第一节 :Windows 平台安装 MongoDB
  7. java Map的四种遍历方式
  8. IO操作之ObjectInputStream与ObjectOutputStream
  9. JS中数据结构之列表
  10. 【Vue】新版vue解决跨域问题