Closeable和java7自动资源释放特性
2016-05-20 22:09
435 查看
Closeable和java7自动资源释放特性
Closeable 是可以关闭的数据源或目标。调用 close 方法可释放对象保存的资源(如打开文件)
closeable是一个接口,只有一个close方法, 许多Io流都直接实现或间接实现了该接口,并实现了close方法,调用close方法可关闭流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(); } } }
从 Java 7 build 105 版本开始,Java 7 的编译器和运行环境支持新的 try-with-resources 语句,称为 ARM 块(Automatic Resource Management) ,自动资源管理.如下代码,可简化代码
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(); } }
相关文章推荐
- JAVA——System类
- [Java]javac 编译源文件出现“锘缝ublic”、“非法字符: \65279”的乱码情况
- eclipse的应用技巧(一)
- Java环境搭建,以win10为例
- java并发-ReentrantLock的lock和lockInterruptibly的区别
- Java内存与垃圾收集知识总结
- Java 设计模式 -- 职责链模式
- 为什么要设置Java环境变量(详解)
- Struts逐步学习
- Java基础——数组(一维数组,二维数组)
- Eclipse导出JAR包【java】
- Java线程学习笔记(一)
- java版strspn
- java向上转型和向下转型
- Java之arrayList 方法二
- JavaSE入门学习46:文件传输基础之I/O流(五)(Java序列化)
- 漂亮的JAVABEAN与TEXT传递
- 20非常有用的Java程序片段
- JDK里的设计模式
- mavlink的Java语言之探索实现