1. 설명
try with resouces 기능은 Java7 이후에 추가된 메소드이다.
try구문에 리소스를 선언하고. try문이 끝나면 자동으로 반납(Close)해주는 기능이다.
Java7 이전에는 finally구문에서 close 해주었지만, 이제는 try구문에서 선언을 해준다면 자동으로 반납이 가능해졌다.
2. 코드
Java7 이전
public class Test(){
public static void main(String[] args){
Scanner scanner = null;
try{
scanner = new Scanner(new File("test.txt"));
System.out.println(scanner.nextLine());
}catch(Exception e){
e.printStackTrace();
}finally{
if(scanner != null} scanner.close();
}
}
}
Java7 이후
public class Test(){
public static void main(String[] args){
try(Scanner scanner = new Scanner(new File("test.txt"))){
System.out.println(scanner.nextLine());
}catch(Exception e){
e.printStackTrace();
}
}
}
3. 여러개의 리소스 생성 및 반납
생성해야하는 리소스가 여러개라면 세미콜론(;)을 사용하여 여러 리소스를 생성할 수 있다.
생성은 scanner1, scanner2의 순서로 되었지만, 반납은 scanner2, scanner1 순서로 진행된다.
public class Test(){
public static void main(String[] args){
try(Scanner scanner = new Scanner(new File("test.txt")); Scanner scanner2 = new Scanner(new File("test2.txt"))){
System.out.println(scanner.nextLine());
System.out.println(scanner2.nextLine());
}catch(Exception e){
e.printStackTrace();
}
}
}
반응형
'Java' 카테고리의 다른 글
Atomic (0) | 2023.02.27 |
---|---|
Consumer (0) | 2023.02.09 |
Static & Singleton Pattern (0) | 2023.02.08 |
Access Modifier ( 접근 지정자 ) (0) | 2023.02.08 |
ThreadLocal (0) | 2023.02.07 |