Java try-with-resource

Doveloper·2024년 1월 16일
0

Back-end

목록 보기
5/6

Java7 이전의 try-catch-finally

public static void main(String args[]) throws IOException {
    FileInputStream is = null;
    BufferedInputStream bis = null;
    try {
        is = new FileInputStream("file.txt");
        bis = new BufferedInputStream(is);
        int data = -1;
        while((data = bis.read()) != -1){
            System.out.print((char) data);
        }
    } finally {
        // close resources
        if (is != null) is.close();
        if (bis != null) bis.close();
    }
}

문제점

  • 자원 반납에 대한 코드를 따로 작성 필요, 이로 인한 번거로움
  • Exception stacktrace 누락

Java7 이후의 try-with-resource

public static void main(String args[]) throws IOException {
    try (FileInputStream is = new FileInputStream("file.txt"); BufferedInputStream bis = new BufferedInputStream(is)) {
        int data;
        while ((data = bis.read()) != -1) {
            System.out.print((char) data);
        }
    }
}

누락없이 모든 자원을 반납 가능 및 코드 간결화

profile
Hungry Developer

0개의 댓글