Java使用 try

网友投稿 260 2022-12-04


Java使用 try

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) {

NlEYgRnzSystem.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

可以看到资源被成功关闭。

NlEYgRnz


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java使用路径通配符加载Resource与profiles配置使用详解
下一篇:一文秒懂java到底是值传递还是引用传递
相关文章

 发表评论

暂时没有评论,来抢沙发吧~