尝试使用资源改进(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