今日代码 PK | 使用 try-with-resources 关闭资源

try-with-resources 是 Java 7 中引入的一个语法糖,

用于自动关闭实现了 AutoCloseable 或 Closeable 接口的资源,

比如 文件输入输出流 等。

使用try-with-resources关闭资源非常方便,

示例代码如下:

try (InputStream in = new FileInputStream("input.txt");
     OutputStream out = new FileOutputStream("output.txt")) {
    // 处理输入输出流
catch (IOException e) {
    e.printStackTrace();
}

如果不使用这种方式,那么就需要我们在 finally块中手动处理,

示例代码如下:

InputStream in = null;
OutputStream out = null;

try {
    in = new FileInputStream("input.txt");
    out = new FileOutputStream("output.txt");
    
    // 处理输入输出流
catch (IOException e) {
    e.printStackTrace();
finally {
    try {
        if (in != null) {
            in.close();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        if (out != null) {
            out.close();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

可以明显的发现,下面这种方式更加繁琐,也容易出现遗漏关闭资源的情况。

因此推荐大家使用try-with-resources方式来关闭资源。

大家更喜欢哪种呢?欢迎投票并在评论区留下自己的想法。

完整代码片段来源于代码小抄,欢迎点击进入小程序阅读!

在线访问:https://www.codecopy.cn/post/umo6m1

更多优质代码欢迎进入小程序查看!

往期推荐

今日代码 PK | 避免循环查库

今日代码 PK | 使用 Optional 判空

今日代码 PK | Java 使用正则表达式

今日代码 PK | 优雅统计耗时

今日代码 PK | 日期时间处理

相关推荐

  • 面试被拷打,真面不动了。。。
  • 我们公司的春招来啦!
  • 从 AI 和数据要素角度聊聊“新质生产力”对企业数字化转型的影响
  • openEuler 学习赛等你来战:解锁开源之力,赢取丰厚奖品!| Q推荐
  • 打造一个成本优先的技术架构,可以分几步?| ArchSummit
  • 我用十几年时间自创了两门编程语言,它们都还挺知名
  • 新一代“汽车人”不智能,汽车怎么智能?| 极客时间
  • 扫码点单小程序怎么制作,费用多少,微信点餐还可以外卖配送
  • 8个2024年最值得关注的开源LLM
  • 博后招募 | 香港理工大学姚岱教授课题组招聘人工智能方向博士后
  • 曾经火出圈的提示工程要死了吗?危!大模型能自己优化Prompt了
  • WWW 2024 | 港理工等联合提出线性时间图神经网络,适用于大规模推荐系统
  • 不会吧!还有人不知道小红书25届实习生招聘开始了吗!
  • 百度5款大模型上新,更小更便宜!还可1分钟零代码打造Agent应用
  • 游戏NPC“活”了,英伟达AI立大功
  • 开源AI掌机爆火,首批预售2.5小时抢光!
  • Sora复刻版来了,微软参与,华人团队打造
  • 为什么说GPU再火,AI平台也少不了强力的CPU
  • Nature重磅:AI击败最先进全球洪水预警系统,提前7天预测河流洪水,每年挽救数千人生命
  • Reddit IPO首日大涨48%,社交媒体卖用户数据第一股,股民追捧但Altman投资却差点亏本