Notion Test

Item 9. Prefer try-with-resources to try-finally

자바에는 close 메서드를 호출해 직접 닫아줘야 하는 자원이 많다. 이런 자원 중 상당수가 finalizer를 활용하고는 있지만 믿을만하지 못하다. try-finally가 많이 쓰이고 있다.

static String firstLineOfFile(String path) throws IOException{
	BufferedReader br = new BufferedReader(new FileReader(path));
	try {
			return br.readLine();
	} finally {
			br.close();
	}
}

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();
				}
}
static String firstLineOfFile(String path) throws IOException {
			try (BufferedReader br = new BufferedReader(new FileReader(path))) {
									return br.readLine();
			}
}

static void copy(String src, String dst) throws IOException {
					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);
				}
}

You might also enjoy

-->