try语句的新特性

JDK7的新特性

  • 在try的后面可以增加一个()
  • 在括号中可以定义流对象
  • 这个流对象的作用域就在try中有效try中的代码执行完毕,会自动把流对象释放,不用写finally
		try(FileInputStream fis = new FileInputStream("./a.mp3");
            FileOutputStream fos = new FileOutputStream("D:/a.mp3")){
            byte[] b = new byte[1024];
            //读取有效字节个数
            int len = 0;
            while ((len = fis.read(b))!=-1){
                fos.write(b,0,len);
            }
        }catch (IOException e){
            System.out.println(e);
        }

JDK9新特性

  • try的前面可以定义流对象
  • 在try后面的()中可以直接引用流对象的名称(变量名)
  • 在try代码执行完毕后,流对象也可以释放到,不用写finally
 		FileInputStream fis = new FileInputStream("./a.mp3");
        FileOutputStream fos = new FileOutputStream("D:/a.mp3")
        try(fis,fos){
            byte[] b = new byte[1024];
            //读取有效字节个数
            int len = 0;
            while ((len = fis.read(b))!=-1){
                fos.write(b,0,len);
            }
        }catch (IOException e){
            System.out.println(e);
        }
posted @ 2022-10-07 17:14  彼时听风  阅读(117)  评论(0)    收藏  举报