- Java 9 教程
- Java 9 - 主页
- Java 9 - 概述
- Java 9 - 环境设置
- Java 9 - 模块系统
- Java 9 - REPL(JShell)
- Java 9 - 改进的 JavaDocs
- Java 9 - 多版本 JAR
- Java 9 - 集合工厂方法
- Java 9 - 私有接口方法
- Java 9 - 流程 API 改进
- Java 9 - 流 API 改进
- 尝试资源改进
- 增强的@Deprecated注释
- 内部类钻石运算符
- 可选的类改进
- Java 9 - 多分辨率图像 API
- CompletableFuture API 改进
- Java 9 - 其他功能
- java9 有用的资源
- Java 9 - 问题与解答
- Java 9 - 快速指南
- Java 9 - 有用的资源
- Java 9 - 讨论
Java 9 - 尝试资源改进
try-with-resources 语句是一个带有正式声明的一个或多个资源的 try 语句。这里的资源是一个对象,一旦不再需要就应该关闭。try-with-resources 语句确保每个资源在需求完成后关闭。任何实现 java.lang.AutoCloseable 或 java.io.Closeable 接口的对象都可以用作资源。
在 Java 9 之前,资源应在 try 之前或 try 语句内声明,如下所示的给定示例。在此示例中,我们将使用 BufferedReader 作为资源来读取字符串,然后关闭 BufferedReader。
测试器.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(); } } }
输出
test
这里我们需要在try语句中声明一个资源br1,然后使用它。在Java9中,我们不再需要声明br1,下面的程序将给出相同的结果。
测试器.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(); } } }
输出
test