Java中如何通过try优雅地释放资源?

栏目: IT技术 · 发布时间: 5年前

内容简介:时间紧迫,长话短说,今天,小明给大家同步一个知识点,使用其实,在JDK 7就已经引入了对如何才能使用这个自动关闭资源的骚操作呢?我们只需要在try内声明和初始化资源即可,如下所示:

时间紧迫,长话短说,今天,小明给大家同步一个知识点,使用 try-with-resources 来优雅地关闭资源。

1. 背景

其实,在JDK 7就已经引入了对 try-with-resources 的支持,它的主要作用就是解放小明和小明小伙伴们的双手,帮助我们自动释放使用过的资源(比如输入、输出流)。

2. 例子

如何才能使用这个自动关闭资源的骚操作呢?我们只需要在try内声明和初始化资源即可,如下所示:

Java中如何通过try优雅地释放资源?

这样,当我们写入文件时,只需要将心思放在输入的内容就行啦。

3.使用try-with-resources的好处

在很久很久以前,你是不是和小明一样每每操作输入流、输出流的时候,用的都是 try-catch-finally 代码块?

现在,答应我好嘛,作为小明的小伙伴,看完这篇文章后,再写代码时,不要再将就,务必使用 try-with-resources 会更小明(优雅)一些。

接下来,我们简单地做个比较:

之前的小明

Java中如何通过try优雅地释放资源?

点评

整体感觉很传统,很冗长。

现在的小明

Java中如何通过try优雅地释放资源?

点评

整体感觉很轻巧,很优雅。

4. 还可以控制多个资源哦

如果我们想一边控制输入、一边控制输出怎么办?

通通放进去!如图所示

Java中如何通过try优雅地释放资源?

5.幕后功臣:Closeable

为什么把资源放进 try-with-resources ,我们就可以束手旁观,高枕无忧呢?原来,要想合法进去 try-with-resources ,不被报警,是需要门票的:实现 CloseableAutoCloseable 接口,并重写 close 方法。就像这样:

Java中如何通过try优雅地释放资源?

6.多个资源的情况下如何顺序关闭呢?

剧透:先创建的资源,最后关闭。

这个故事是这样讲的:小明和小红一起打王者荣耀……

小明:

Java中如何通过try优雅地释放资源?

小红:

Java中如何通过try优雅地释放资源?

全军出击:

Java中如何通过try优雅地释放资源?

故事纵览:

Java中如何通过try优雅地释放资源?

提问:结局是不是和剧透一致?

7. 补充

我们使用 try-with-resources 的时候不仅可以优雅地释放资源,而且还可以传统一些,照常使用 catchfinally 哦。

8. 总结

经过小明这么一番生动的讲解:

你是否知道了什么是 try-with-resources

你是否知道了如何用 try-with-resources 替换 try-catch-finally

你是否知道了 AutoCloseable 构建自定义资源以及关闭资源的顺序?

附Github源码地址: https://github.com/WhenCoding/coder-xiaoming


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Elements of Programming

Elements of Programming

Alexander A. Stepanov、Paul McJones / Addison-Wesley Professional / 2009-6-19 / USD 39.99

Elements of Programming provides a different understanding of programming than is presented elsewhere. Its major premise is that practical programming, like other areas of science and engineering, mus......一起来看看 《Elements of Programming》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

在线进制转换器
在线进制转换器

各进制数互转换器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试