Java 에서 자원을 할당하고 해제하는 코드는 상당히 귀찮고 코드도 복잡하게 될 수 있다.
보통 아래와 같이 코드를 작성한다.
public void test(String inputFileName, String outputFileName) { InputStream in = null; OutputStream out = null; try { in = new FileInputStream(inputFileName); out = new FileOutputStream(outputFileName); copy(in, out); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } if (out != null) { try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } } |
하지만 아래와 같이 작성하면, 자원을 할당하고 해제하는 코드를 깔끔하게 작성할 수 있다.
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(inputFileName);
out = new FileOutputStream(outputFileName);
copy(in, out);
finally {
close(in);
close(out);
}
public static void close(Closeable c) {
if (c == null) return;
try {
c.close();
} catch (IOException e) {
//log the exception
}
}
출처: http://stackoverflow.com/questions/2699209/java-io-ugly-try-finally-block/2699270#2699270
'Programming > Java' 카테고리의 다른 글
ExceptionUtils - java 에서 exception 관련 처리를 쉽게 도와주는 클래스 (0) | 2013.08.30 |
---|---|
Java 프로그램에서 garbage collection 이 얼마나 일어나는 지 알아 내기 (0) | 2013.05.14 |
Sorted Array to Binary Search Tree - 정렬된 배열을 이진 탐색 트리로 변환 (0) | 2013.04.23 |
Marshalling vs Serialization (마샬링 과 시리얼라이즈 의 차이) (1) | 2013.02.06 |
import 문 기술 순서 규칙 (0) | 2013.01.09 |