Java 9 - 리소스로 시도 개선
try-with-resources 문은 정식으로 선언된 하나 이상의 리소스가 있는 try 문입니다. 여기서 리소스는 더 이상 필요하지 않으면 닫아야 하는 개체입니다. try-with-resources 문은 요구 사항이 완료된 후 각 리소스가 닫히도록 합니다. java.lang.AutoCloseable 또는 java.io.Closeable을 구현하는 모든 객체, 인터페이스는 리소스로 사용할 수 있습니다.
Java 9 이전에는 다음 예제와 같이 try 문 또는 내부에서 리소스를 선언해야 합니다. 이 예에서는 BufferedReader를 리소스로 사용하여 문자열을 읽은 다음 BufferedReader를 닫습니다.
테스터.자바
라이브 데모
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을 선언할 필요가 없으며 다음 프로그램은 동일한 결과를 제공합니다.
테스터.자바
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