Java使用 try-with-resources 实现自动关闭资源的方法
时间:2022-06-19 10:25:16|栏目:JAVA代码|点击: 次
1、 在Java1.7之前,我们需要通过下面这种方法, 在finally中释放资源,这种方法有点繁琐。
BufferedReader br = null;
String str;
try {
br = new BufferedReader(new FileReader(""));
while ((str = br.readLine()) != null) {
System.out.println(str);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2、在java1.7之后,可以使用try-with-resources实现自动关闭资源
try (BufferedReader br = new BufferedReader(new FileReader(""))) {
while ((str = br.readLine()) != null) {
System.out.println(str);
}
} catch (IOException e) {
e.printStackTrace();
}
这样看上去,是不是感觉代码干净了许多,当程序运行完离开try语句块时,( )里的资源就会被自动关闭。
但是try-with-resources还有几个关键点要记住:
①、try()里面的类,必须实现了AutoCloseable接口。
②、在try()代码中声明的资源被隐式声明为fianl。
③、使用分号分隔,可以声明多个资源。
3、自定义类并实现AutoCloseable接口
class TestAutoClosable implements AutoCloseable {
@Override
public void close() throws Exception {
System.out.println("close");
}
public void test() {
System.out.println("test");
}
}
接下来我们测试下,我们写得自定义类
try (BufferedReader br = new BufferedReader(new FileReader("E:/test.txt"));
TestAutoClosable testAutoClosable = new TestAutoClosable()) {
testAutoClosable.test();
} catch (Exception e) {
e.printStackTrace();
}
当调用testAutoClosable.test()方法时,下面是控制台打印的:
test
close
可以看到资源被成功关闭。
上一篇:Mybatis 中 Oracle 的拼接模糊查询及用法详解
栏 目:JAVA代码
本文标题:Java使用 try-with-resources 实现自动关闭资源的方法
本文地址:http://www.codeinn.net/misctech/205227.html


阅读排行
- 1Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 2Java Swing组件BoxLayout布局用法示例
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4java中-jar 与nohup的对比
- 5深入理解Java中的克隆
- 6Java中自定义异常详解及实例代码
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9深入解析java虚拟机
- 10spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)




