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