개발/Java
Java - IO, finnaly문 정리
뉴에이스
2018. 10. 2. 15:44
1.7 버전부터 finally - close 부분의 비효율성을 개선
try ~ resource 지원, 자동 닫힘 지원 : try (객체 생성){} 시 try 문을 벗어난 후 자동으로 close 됨
조건 : 사용하는 클래스가 AutoCloseable을 상속해야 한다.
: IO의 클래스는 전부 AutoClosable을 상속받은 상태임
소스
class MyClose implements AutoCloseable {
public void close() throws Exception {
System.out.println("MyClose 호출 테스트");
}
}
public static void main(String[] args) {
try (
MyClose mc = new MyClose(); // AutoCloseable 클래스를 상속받지 않을 경우 오류 발생
FileReader fr = new FileReader("data/lec13/Test01.java");
FileWriter fw = new FileWriter("data/lec13/Test01Cp.java");
) {
System.out.println("try 블럭 실행함...");
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("try 블럭 밖...");
}
결과
try 블럭 실행함...
MyClose 호출 테스트
try 블럭 밖...