栏目:Java8基础 作者:admin 日期:2018-10-21 评论:0 点击: 414 次
在Java 7之前,IO操作为了保证资源能被关闭,往往会在try代码块后加上finally代码块来处理资源的关闭。
如下:
1 2 3 4 5 6 |
BufferedReader br = new BufferedReader(new FileReader(path)); try { return br.readLine(); } finally { if (br != null) br.close(); } |
Java 7新增了try-with-resources语法来保证资源的关闭。现在你可以这么写:
1 2 3 |
try(BufferedReader br = new BufferedReader(new FileReader(path));) { return br.readLine(); } |
代码块里处理完后会自动关闭资源,不需要显示调用close()方法。也不需要finally,代码简洁多了,但是需要注意:
被关闭的资源类需要实现AutoClosable接口或者是Closable接口。
需要自动关闭的资源在try后面的括号里声明。允许声明多个被关闭的资源,关闭的顺序是与创建资源的顺序相反。
------====== 本站公告 ======------
金丝燕网,一个严谨的网站!