java 异常处理的自动资源管理
来源:互联网 发布:mac设置苹果手机铃声 编辑:程序博客网 时间:2024/06/18 13:59
转自:http://www.oschina.net/question/12_10706
--------------------------------------------------------------------------
从 Java 7 build 105 版本开始,Java 7 的编译器和运行环境支持新的 try-with-resources 语句,称为 ARM 块(Automatic Resource Management) ,自动资源管理。
新的语句支持包括流以及任何可关闭的资源,例如,一般我们会编写如下代码来释放资源:
private static void customBufferStreamCopy(File source, File target) { InputStream fis = null; OutputStream fos = null; try { fis = new FileInputStream(source); fos = new FileOutputStream(target); byte[] buf = new byte[8192]; int i; while ((i = fis.read(buf)) != -1) { fos.write(buf, 0, i); } } catch (Exception e) { e.printStackTrace(); } finally { close(fis); close(fos); }} private static void close(Closeable closable) { if (closable != null) { try { closable.close(); } catch (IOException e) { e.printStackTrace(); } }}
代码挺复杂的,异常的管理很麻烦。
而使用 try-with-resources 语句来简化代码如下:
private static void customBufferStreamCopy(File source, File target) { try (InputStream fis = new FileInputStream(source); OutputStream fos = new FileOutputStream(target)){ byte[] buf = new byte[8192]; int i; while ((i = fis.read(buf)) != -1) { fos.write(buf, 0, i); } } catch (Exception e) { e.printStackTrace(); }}
代码清晰很多吧?在这个例子中,数据流会在 try 执行完毕后自动被关闭,前提是,这些可关闭的资源必须实现 java.lang.AutoCloseable 接口。 阅读全文
0 0
- java 异常处理的自动资源管理
- C++ 异常处理 - 资源管理
- java自动资源管理
- Java异常处理(3)自动关闭的try
- 详解Java异常处理——自动异常处理
- Java异常的处理
- java的异常处理
- java的异常处理
- java的异常处理
- Java异常的处理
- JAVA异常的处理
- java 的异常处理
- java的异常处理
- java的异常处理
- java的异常处理
- Java的异常处理
- java 的异常处理
- JAVA的异常处理
- ES自测过程总结
- java 异或加密
- windows+python环境下安装TensorFlow经验--备忘
- cocos2d-x 运动中的加速度效果
- vue2.0 mint-ui系列
- java 异常处理的自动资源管理
- MATLAB中调用Weka设置方法(转)及示例
- Android系统篇之—-Binder机制和远程服务调用机制分析
- 报错dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /var/co
- 1058. 选择题(20) 字符串处理
- Centos7下快速安装Mongo3.2
- 对标题超过一定的字数进行省略号显示
- How to Ignore new commits for git submodule
- 视频测试软件+视频测试硬件=视频质量测试解决方法+视频测试的重要性