Java NIO(10) - 自动资源管理

2020-05-15  本文已影响0人  21号新秀_邓肯

7.1 简介

Java 7 增加了一个新特性,该特性提供了另外一种管理资源的方式,这种方式能自动关闭文件。这个特性有时被称为自动资源管理(Automatic Resource Management, ARM), 该特性以 try 语句的扩展版为基础。自动资源管理主要用于,当不再需要文件(或其他资源)时,可以防止无意中忘记释放它们。

try(需要关闭的资源声明){
//可能发生异常的语句
}catch(异常类型 变量名){
//异常的处理语句
}
……
finally{
//一定执行的语句
}

当 try 代码块结束时,自动释放资源。因此不需要显示的调用 close() 方法。该形式也称为“带资源的 try 语句”。

注意:

①try 语句中声明的资源被隐式声明为 final ,资源的作用局限于带资源的 try 语句

②可以在一条 try 语句中管理多个资源,每个资源以“;” 隔开即可。

③需要关闭的资源,必须实现了 AutoCloseable 接口或其自接口 Closeable

    /**
    * 自动资源管理:自动关闭实现 AutoCloseable 接口的资源
    */
    @Test
    public void test8(){
        try(FileChannel inChannel = FileChannel.open(Paths.get("1.jpg"), StandardOpenOption.READ);
                FileChannel outChannel = FileChannel.open(Paths.get("2.jpg"), StandardOpenOption.WRITE, StandardOpenOption.CREATE)){
            
            ByteBuffer buf = ByteBuffer.allocate(1024);
            inChannel.read(buf);
            
        }catch(IOException e){
            
        }
    }
上一篇 下一篇

猜你喜欢

热点阅读