Java 7 新的 try-with-resources 语句,自动资源释放
2023-09-11 14:18:05 时间
原文地址:https://www.cnblogs.com/my-haohao/p/5627307.html
Java 7 的编译器和运行环境支持新的 try-with-resources 语句,称为 ARM 块(Automatic Resource Management) ,自动资源管理。
新的语句支持包括流以及任何可关闭的资源,例如,一般我们会编写如下代码来释放资源:
public static void filyCopy(File one,File two){ FileInputStream fileInput = null; FileOutputStream fileOutput = null; try { fileInput = new FileInputStream(one); fileOutput = new FileOutputStream(two); byte[] b = new byte[1024]; int len = 0; while((len = fileInput.read(b)) != -1){ fileOutput.write(b, 0, len); } } catch (Exception e) { e.printStackTrace(); } finally {//释放资源 try { if(fileInput != null){ fileInput.close(); } if(fileOutput != null){ fileOutput.close(); } } catch (Exception e2) { e2.printStackTrace(); } } }
使用 try-with-resources 语句来简化代码如下:
public static void filyCopy2(File one,File two){ try (FileInputStream fileInput = new FileInputStream(one); FileOutputStream fileOutput = new FileOutputStream(two);){ byte[] b = new byte[1024]; int len = 0; while((len = fileInput.read(b)) != -1){ fileOutput.write(b, 0, len); } } catch (Exception e) { e.printStackTrace(); } }
在这个例子中,数据流会在 try 执行完毕后自动被关闭,前提是,这些可关闭的资源必须实现 java.lang.AutoCloseable 接口。
相关文章
- Java 获取字符串指定下标位置的值 charAt()
- Java导出CSV文件
- 2014面试总结--java、数据 方向
- 回归JAVA: java文件编译后,出现xx$1.class的原因
- 最新秋招,Java八股文!含答案,JAVA核心知识点最详细版(面试必备)
- 34 异常机制 异常体系结构 Java把异常当做对象来处理 并定义一个基类java.lang.Throwable作为所有异常的超类 Error Exception
- java 构造方法
- Java IDEA中设置导入import java.xx.*和设置导入具体的import java.xx.yy;
- Java 8系列之重新认识HashMap
- elasticsearch之JAVA环境变量报错:could not find java; set JAVA_HOME or ensure java is in PATH
- java.lang.OutOfMemoryError: Java heap space解决方法
- JAVA_用Java来获取访问者真实的IP地址
- 浅析Java对集合进行操作时报java.util.ConcurrentModificationException并发修改异常问题:产生原因、单线程/多线程环境解决、CopyOnWriteArrayList线程安全的ArrayList、fail-fast快速失败机制防止多线程修改集合造成并发问题
- Java基础篇:内部类详解
- Java学习---JBPM[工作流]学习
- Java实现短信验证码(阿里云短信服务)
- 【JAVA】Exception in thread "main" java.lang.NoClassDefFoundError
- 【JAVA】泛型类的概念
- C++调用Java的Jar包
- 简单的JAVA MVC框架模式--Java-servlet-JavaBean
- java.lang.OutOfMemoryError: Java heap space错误及处理办法(收集整理、转)
- How to set JAVA environment variables in Linux or CentOS
- 纪念我曾经的 JAVA 姿势--转
- 【JAVA】浅谈java枚举类
- Java 报错 Information:java: javacTask: 源发行版 8 需要目标发行版 1.8
- JAVA读取excel数据(插入oracle数据库)
- 9:关于Maven工程的文件标识(定义java文件源码,资源文件)
- Java I/O 模型之 AIO