item 09 : try-finally보다는 tiy-with-resources를 사용하라
코드 9-1: try-finally를 사용한 자원 회수 (더 이상 최선의 방법이 아님)
try-finally를 사용한 자원 회수 (더 이상 최선의 방법이 아님)static String firstLineOfFile(String path) throws IOException {
// 파일 경로를 받아 BufferedReader 생성
BufferedReader br = new BufferedReader(new FileReader(path));
try {
// 파일의 첫 번째 줄을 읽어 반환
return br.readLine();
} finally {
// BufferedReader를 닫아 자원 해제
br.close();
}
}코드 9-2: 자원이 둘 이상일 때의 try-finally (너무 지저분함)
try-finally (너무 지저분함)static void copy(String src, String dst) throws IOException {
// 입력 스트림 생성
InputStream in = new FileInputStream(src);
try {
// 출력 스트림 생성
OutputStream out = new FileOutputStream(dst);
try {
byte[] buf = new byte[BUFFER_SIZE];
int n;
// 데이터를 읽어서 복사
while ((n = in.read(buf)) >= 0)
out.write(buf, 0, n);
} finally {
// 출력 스트림 닫기
out.close();
}
} finally {
// 입력 스트림 닫기
in.close();
}
}
코드 9-3: try-with-resources를 사용한 자원 회수 (최선의 방법)
try-with-resources를 사용한 자원 회수 (최선의 방법)코드 9-4: 복수의 자원을 처리하는 try-with-resources (짧고 매혹적임)
try-with-resources (짧고 매혹적임)코드 9-5: try-with-resources에 catch 절을 함께 사용
try-with-resources에 catch 절을 함께 사용Last updated