본문 바로가기
JAVA

자동 리소드 닫기

by 융디's 2024. 4. 25.
728x90
자동 리소드 닫기

자동 리소드 닫기

@2024.04.12

자동 리소스 닫기(Automatic Resource Management)

💡
JAVA에서 리소스를 관리하는 효율적인 방법으로, 시스템 리소스를 사용하는 객체들을 자동으로 닫아주는 기능
  • 과거에는 finally 블록을 사용하여 리소스를 닫아야 했다.
    • 코드가 복잡해지고, 리소스를 닫는 것을 잊어버릴 수 있다.
  • try 블록 내에서 리소스를 선언하고, 사용하면 블록이 종료될 때 자동적으로 리소스가 닫힌다.
    • 리소스 누수를 방지하고, 코드를 좀 더 깔끔하게 관리 가능

  • 예시
    • FileInputStream 인스턴스는 try 블록 내에서 생성되어, 블록이 종료되면 자동으로 닫힌다.
    // 자동 리소스 닫기 미사용 
    FileInputStream fileInputStream = null;
    try {
        fileInputStream = new FileInputStream("file.txt");
        // 파일 처리 로직
    } catch (IOException e) {
        // 예외 처리 로직
    } finally {
        try {
            if (fileInputStream != null) {
                fileInputStream.close();
            }
        } catch (IOException e) {
            // 예외 처리 로직
        }
    }
    
    // 자동 리소스 닫기 사용 
    try (FileInputStream fileInputStream = new FileInputStream("file.txt")) {
    // 파일 처리 로직
    // 파일 처리가 끝나면 자동으로 fileInputStream이 닫힘
    } catch (IOException e) {
    // 예외 처리 로직
    }

728x90

'JAVA' 카테고리의 다른 글

java.lang과 java.util 패키지  (0) 2024.04.26
내부 클래스  (0) 2024.04.25
예외 처리  (1) 2024.04.25
Final  (0) 2024.04.25
인터페이스  (0) 2024.04.25