Java 9 Try-With-Resources 增强-java-ICode联盟

转载  Java 9 Try-With-Resources 增强

分类:java    107人阅读    IT小君  2023-04-09 19:59

在 Java 7 和 8 中,我们可以使用 try-with-resource 块来声明可关闭的资源。任何实现的对象都java.lang.AutoCloseable可以在 try-with-resource 块中使用。以下是执行此操作的 Java 7/8 语法:

 try(InputStream stream1 = new InputStream(....);
     InputStream stream2 = new InputStream(....)){
    ....
 }

当上述块终止时,无论是正常终止还是由于异常终止,close()每个流对象的方法将按照它们声明的顺序自动调用。

 

Java 9 在使用 try-with-resource 块时提供了额外的灵活性,现在我们不再有在 try 括号内声明每个可关闭对象的限制,我们只需要使用它们的引用:

 InputStream stream1 = new InputStream(....);
 InputStream stream2 = new InputStream(....);
    ....
 try(stream1;stream2){
    ....
 }

例子

 

为简单起见,我们将使用 String 对象作为 InputStream 源。我们还将覆盖 close() 方法以了解它何时被调用。

public class TryWithResourceExample {
  public static void main(String[] args) throws IOException {
      InputStream inputStream = getInputStream();

      try (inputStream) {
          String s = new String(inputStream.readAllBytes());
          System.out.println(s);
      }

      System.out.println("after try-with-resource block");
  }

  public static InputStream getInputStream() {
      return new ByteArrayInputStream("test string".getBytes()) {
          @Override
          public void close() throws IOException {
              System.out.println("closing");
              super.close();
          }
      };
  }
}

 

输出

 

test string
closing
after try-with-resource block
点击广告,支持我们为你提供更好的服务

有趣的css图片遮罩层滤镜特效

4款不同岗位个人求职简历网页模板

极简品牌设计工作室HTML5网站模板

HTML5浪漫风格婚礼婚纱婚庆网站模板

炫酷WebGL流体图片滑动切换效果

互联网设计师个人简历网页模板

商务代理服务商公司网站模板

html5鼠标经过星星连成一条线特效

css精美蝴蝶动画特效

3dmax弹跳鼠标跟随动画特效

高级岗位个人求职面试网页模板

HTML5保健品营养品引导页模板

html5 canvas文字放射发光动画特效

时尚css导航菜单栏动画特效

canvas卡通液体马赛克图像特效

教育辅导培训机构HTML5网站模板

CSS3 SVG叶子虚线响应式布局代码

css照明喷泉灯光动画特效

创意设计机构HTML5网站模板

打造健康生活方式宣传网站模板

点击广告,支持我们为你提供更好的服务
 工具推荐 更多»