Bepoz
파즈의 공부 일기
Bepoz
전체 방문자
오늘
어제
  • 분류 전체보기 (232)
    • 공부 기록들 (85)
      • 우테코 (17)
    • Spring (85)
    • Java (43)
    • Infra (17)
    • 책 정리 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Bepoz

파즈의 공부 일기

Java

[Java] try-with-resources 에 대해

2021. 4. 6. 23:03

try-with-resources 에 대해

try-with-resources 는 손쉽게 자원 할당을 해제할 수 있는 방법이다.

어떻게 사용하는지 바로 확인해보자.

private static void printFile () throws IOException {

    try (FileInputStream input = new FileInputStream ( "file.txt")) {

        int 데이터 = input.read ();
        while (데이터! = -1) {
            System.out.print ((char) 데이터);
            데이터 = input.read ();
        }
    }
}

다음과 같이 사용한다. 기존의 try-catch-finally 였다면 finally 블록을 따로 만들어주고 그 부분에 close 메서드들을 호출했어야 했다. 하지만, try-with-resources 를 사용하면 try 블록이 완료되는 순간에 자동으로 close 메서드를 호출하게 된다.

자바 9에서는 위의 코드에서 FileInputStream input = new FileInputStream("file.txt") 를 try 블록 바깥으로 빼고 try 블록에는 input만 넣는 것으로 처리할 수 있다.


try-with-resources가 모든 객체에 대해 close 메서드를 호출하는 것은 아니다.

public interface AutoCloseable {
    void close() throws Exception;
}

바로 AutoCloseable 인터페이스를 구현하고 있어야만 close 메서드를 호출해준다.

물론 try-with-resources 에도 catch로 예외를 잡을 수 있으며, finally 또한 사용할 수 있다.


Reference

http://tutorials.jenkov.com/java-exception-handling/try-with-resources.html

'Java' 카테고리의 다른 글

[JDBC] 단일 Select을 위한 방법들  (0) 2021.05.14
[Java] 템플릿 메서드 패턴, 팩토리 메서드 패턴, 추상 팩토리 패턴  (0) 2021.04.27
[Java] Arrays.asList와 List.of의 차이점에 대해  (0) 2021.03.21
[Java] Stream의 distinct()와 sorted() 어느 것부터 먼저 해야할까??  (0) 2021.03.14
[Java] 강한참조와 약한참조 그리고 WeakHashMap 에 대해  (0) 2021.03.01
    'Java' 카테고리의 다른 글
    • [JDBC] 단일 Select을 위한 방법들
    • [Java] 템플릿 메서드 패턴, 팩토리 메서드 패턴, 추상 팩토리 패턴
    • [Java] Arrays.asList와 List.of의 차이점에 대해
    • [Java] Stream의 distinct()와 sorted() 어느 것부터 먼저 해야할까??
    Bepoz
    Bepoz
    https://github.com/Be-poz/TIL

    티스토리툴바