Effective Java

이펙티브 자바 완벽 공략 1부

아이템 9 - try-finally 보다 try-with-resources를 사용하라.

try-with-resources를 사용해야 하는 이유

예시

//자원이 둘 이상일 때
//try-finally
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();
}

//try-with-resources
try(InputStream in = new FileInputStream(src);
	OutputStream out = new FileOUtputStream(dst)) {
	byte[] buf = new byte[BUFFER_SIZE];
	int n;
	while((n = in.read(buf)) >=0 )
		out.write(buf, 0, n);
	}

출처

이펙티브 자바 3/E
이펙티브 자바 완벽 공략 1