关于Java中的try-with-resources语句
作者:王雀跃 发布时间:2022-10-21 16:49:54
标签:Java,try-with-resources,try块
介绍
try-with-resources是Java中的环绕语句之一,旨在减轻开发人员释放try
块中使用的资源的义务。
它最初在Java 7中引入,背后的全部想法是,开发人员无需担心仅在一个try-catch-finally块中使用的资源的资源管理。这是通过消除对finally
块的依赖而实现的。
此外,使用try-with-resources的代码通常更清晰易读,因此使代码更易于管理,尤其是当我们处理许多try
块时。
语法
try-with-resources的语法与通常try-catch-finally语法相同。
普通try:
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter(fileName));
writer.write(str); // do something with the file we've opened
} catch (IOException e) {
// handle the exception
} finally {
try {
if (writer != null)
writer.close();
} catch (IOException e) {
// handle the exception
}
}
try-with-resources:
try(BufferedWriter writer = new BufferedWriter(new FileWriter(fileName))){
writer.write(str); // do something with the file we've opened
}
catch(IOException e){
// handle the exception
}
Java理解此代码的方式:
try语句之后在括号中打开的资源仅在此处和现在需要。
.close()
在try块中完成工作后,将立即调用它们的方法。如果在try块中抛出异常,无论如何我会关闭这些资源。
注意:
从Java 9开始,没有必要在try-with-resources语句中声明资源。
可以这样做:
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
try (writer) {
writer.write(str); // do something with the file we've opened
}
catch(IOException e) {
// handle the exception
}
来源:https://blog.csdn.net/wangshiqi666/article/details/130431969


猜你喜欢
- 最近看了一些淘宝购物车的demo,于是也写了一个。效果图如下:主要代码如下: actvity中的代码:public class Shoppi
- Random类 (java.util) Ran
- public void CutToF(Stream stream)
- 参考答案java.sql.Date 是 java.util.Date 的子类java.util.Date 是 JDK 中的日期类,精确到时、
- 关键字 static1. 概述static 是一种修饰符static 是Java中表静态的关键字它可以修饰成员变量、成员方法、代码块被sta
- 我们肯定遇到过打开别人的项目时一直处于Building‘XXX'Gradle project info的情况。本文通过两种方法带领大
- 先给大家展示下效果图,如果大家感觉不错,请参考实现代码。思路1.下角Button的父View加入一个FrameLayout,也就是图中全屏透
- 前言接着上一篇:Java Fluent Mybatis 项目工程化与常规操作详解流程篇 上仓库地址:GitHub仓库查询定义查询请求体pac
- 本文实例为大家分享了Android判断网络状态的具体代码,供大家参考,具体内容如下一、权限需要在AndroidManifest.xml 添加
- Java自定义动态数组1、静态数组向动态数组转变(1)静态数组,数组空间固定长度这个数组空间总长为4,如果此时新插入一个数据就会报数组空间不
- Spring框架的关键组件是面向方面编程(AOP)框架。面向方面的编程不仅打破程序逻辑分成不同的部分称为所谓的担忧。跨越多个点的应用程序的功
- 本文实例为大家分享了C#实现温度转换功能的具体代码,供大家参考,具体内容如下界面图代码using System;using System.C
- 面试的时候被问到,如何遍历System.drawing.Color下面的所有颜色以及名称以查看,当时答得不好,现将方案记录如下:View C
- 很多童鞋反应在吧项目导入到eclipse(myeclipse)时中文会有乱码,修改了编码格式后还是乱码,这里给大家介绍一下关于中文乱码时修改
- 这个功能,大家也都可以去百度以下,千篇一律都自己写的(抄的)封装好的公共类,此处还是得膜拜下原创的大佬,可以花时间去搞这个,我看着都头皮发麻
- 效果图简单的效果图(使用开源库)[FlowLayout](“ https://github.com/hongyangAndroid/Flow
- 算法概述/思路归并排序是基于一种被称为“分治”(divide and conquer)的策略。其基本思路是这样的:1.对于两个有序的数组,要
- Nashorn是什么Nashorn,发音“nass-horn”,是德国二战时一个坦克的命名,同时也是java8新一代的javascript引
- 【一】背景6.0运行时申请权限已经是一个老生常谈的内容了,最近项目TargetSDKVersion升到23以上,所以我们也需要做权限管理,我
- 在C#的数字运算过程中,有时候针对十进制decimal类型的计算需要保留2位有效小数,针对decimal变量保留2位有效小数有多种方法,可以