当前位置: 首页 > 文档资料 > Java 9 中文教程 >

尝试使用资源改进(Try With Resources improvement)

优质
小牛编辑
132浏览
2023-12-01

try-with-resources语句是一个try语句,其中包含一个或多个正式声明的资源。 这里资源是一个对象,一旦不再需要就应该关闭它。 try-with-resources语句确保在需求完成后关闭每个资源。 任何实现java.lang.AutoCloseable或java.io.Closeable的对象,接口都可以用作资源。

在Java 9之前,资源将在try之前或try语句内部声明,如下面给出的示例所示。 在这个例子中,我们将使用BufferedReader作为资源来读取字符串,然后关闭BufferedReader。

Tester.java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
public class Tester {
   public static void main(String[] args) throws IOException {
      System.out.println(readData("test"));
   } 
   static String readData(String message) throws IOException {
      Reader inputString = new StringReader(message);
      BufferedReader br = new BufferedReader(inputString);
      try (BufferedReader br1 = br) {
         return br1.readLine();
      }
   }
}

输出 (Output)

test

在这里,我们需要在try statment中声明资源br1然后使用它。 在Java9中,我们不再需要声明br1,并且在程序之后将给出相同的结果。

Tester.java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
public class Tester {
   public static void main(String[] args) throws IOException {
      System.out.println(readData("test"));
   } 
   static String readData(String message) throws IOException {
      Reader inputString = new StringReader(message);
      BufferedReader br = new BufferedReader(inputString);
      try (br) {
         return br.readLine();
      }
   }
}

输出 (Output)

test