如题,在工作中遇见了在try...catch语句的try后面加括号,不懂,查资料明白之后,特此记录.

下面是一段很简单的从文件读取文本的输入流:

package com.springcloud.server.springserver;import java.io.*;public class TryTest {public static void main(String[] args) {File file = new File("E:\\springcloud\\spring-eureka\\src\\main\\resources\\a.txt");InputStream inputStream = null;try {inputStream  = new FileInputStream(file);byte b[] = new byte[1024];int len = 0;int temp=0;          //所有读取的内容都使用temp接收while((temp=inputStream.read())!=-1){    //当没有读取完时,继续读取b[len]=(byte)temp;len++;}System.out.println(new String(b,0,len));}catch (Exception e){e.printStackTrace();}finally {try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}}
}

有一定java功底的人一眼就看的明白,非常简单.

但是,在java1.7的版本中,我们还有另外一种写法来关闭这个inputstream,也就是在try后面加括号,代码如下:

package com.springcloud.server.springserver;import java.io.*;public class TryTest {public static void main(String[] args) {File file = new File("E:\\springcloud\\spring-eureka\\src\\main\\resources\\a.txt");try (InputStream inputStream = new FileInputStream(file)){byte b[] = new byte[1024];int len = 0;int temp=0;          //所有读取的内容都使用temp接收while((temp=inputStream.read())!=-1){    //当没有读取完时,继续读取b[len]=(byte)temp;len++;}System.out.println(new String(b,0,len));}catch (Exception e){e.printStackTrace();}}
}

为了验证,我们在FileInputStream的close方法处打上断点,并且以debug的方式启动上面的方法:

启动,发现我们没有显示的写close(),程序还是进入了close()方法:

由此可知,在try后面写的内容是可以自动帮我进行close()的.

总结:

从java1.7版本开始,支持使用try后面跟随()括号管理释放资源,前提是这些可关闭的资源必须实现 java.lang.AutoCloseable 接口。

java的try后面跟括号相关推荐

  1. java基础---try后小括号(1.7后IO流的关闭方式)

    package com.io;import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOExc ...

  2. [字符串题-java实现]20. 有效的括号

    题目 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 示例 ...

  3. java % 负数_Java如何在括号中显示负数?

    下面的代码段向我们展示了如何在括号中显示或格式化负数.我们从定义数字格式开始,该模式有两部分,以分号分隔.在代码段中,我们使用了#,##0.00;(#,##0.00)模式.分号后的模式将用于格式化负数 ...

  4. java if后面要加大括号

    项目中会有if判断后面不加大括号,但是后面还有很多逻辑处理.这样既不规范,也会导致修改代码时候造成不必要的麻烦,所以我将所有过我手的代码,都给修改过来了.比如: if(A) result = &quo ...

  5. 【Java】基于栈的括号匹配问题

    这里只用一个方法(函数)描述这个算法: public int match(char[] bra_exp) {//初始化栈StackInterface<Character> stack = ...

  6. java中向上的尖括号是什么,什么lt; Tgt; (尖括号)在Java中是什么意思?

    I am currently studying Java and have recently been stumped by angle brackets(<>). What exactl ...

  7. java如何实现添加尖括号_(尖括号)在Java中意味着什么?

    < T>是通用的,通常可以读作"T型".它取决于<>左侧的类型它究竟意味着什么. 我不知道Pool或PoolFactory是什么,但你也提到了ArrayLi ...

  8. java 正则 大括号_正则表达式(括号)、[中括号]、{大括号}的区别小结 通用所有语言 系统...

    正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...

  9. java正则 括号_java正则表达式获取大括号小括号内容并判断数字和小数亲测可用...

    获取大括号小括号内容 项目开发用到了,暂做个简单记录 private static String regex = "\\{([^}]*)\\}";//匹配大括号 private s ...

  10. 【JAVA】 new ArrayList<> () {{}} 双花括号 是什么写法?

    [JAVA] new ArrayList<> () {{}} 双花括号 是什么写法? 1.引言 很多时候,我们会看到 new ArrayList<String>(){{}}这样 ...

最新文章

  1. 如何避免重构带来的危险
  2. 连接mysql数据库,创建用户模型
  3. Android事件流程详解
  4. android线程控制UI更新(Handler 、post()、postDelayed()、postAtTime)
  5. 6-3 求链表的倒数第m个元素
  6. 面试官:Redis 内存数据满了,会宕机吗?
  7. 8.Java web—JSP基本语法
  8. 实用的 PHP 正则表达式
  9. orac l e数据库第一章
  10. 桌面计算机怎么覆盖文件,恢复被覆盖的文件_恢复被覆盖的桌面文件
  11. python tkinter button_Python3 Tkinter-Button
  12. SCJP java主方法解释
  13. 使用FFmpeg工具进行推流、拉流、截图、变速、转换,及常见问题处理
  14. 计算机网络共享打不开,电脑系统网络和共享中心打不开怎么办
  15. RocketMQ-顺序消息Demo及实现原理分析
  16. 将正负值分别显示的函数
  17. html设置ios状态栏颜色,ios 显示html标签,超链接颜色以及下划线的处理
  18. 【BZOJ 1934】 [Shoi2007]Vote 善意的投票
  19. abaqus算界面脱粘_ABAQUS粘聚力模型(-Cohesive-Model-)-应用小结.pdf
  20. 乐视android版本怎么升级,乐视手机EUI系统升级教程 乐视手机EUI系统怎么升级

热门文章

  1. 如何利用巨象指纹浏览器在twitter上找到精准客户
  2. 从coursera网站自动下载网课视频(Linux中bash操作)
  3. 开启 Kerberos 安全的大数据环境中,Yarn Container 启动失败导致作业失败
  4. 深入理解Java虚拟机-垃圾收集算法
  5. Cesium开发:简单箭头画法
  6. BigDecimal精度控制
  7. SQL Server 2019下载安装教程
  8. linux快速扫ip段端口,小巧快速的IP地址和端口扫描工具Angry IP Scanner
  9. eve单机版mysql_eve单机版中文下载_eve单机版下载-游迅网
  10. 默认关闭IDEA的注释doc的rendered view模式