try with resource
BufferedReader, BufferedWriter 사용 후 close 해야하는 이유
가비지 컬렉터는 외부에서 객체를 참조하는 변수가 없을 때 가비지로 판단하고 삭제합니다. 메서드가 끝나는 순간 객체를 참조하는 것이 없기에 없애버리기에 가비지 컬렉터에 의해서 bufferedreader가 정리되긴 하지만, 가비지 컬렉터로 정리되기전에 bufferedreader가 연속으로 사용되면 정상적으로 작동하지 않을 수 있습니다. 특히, BufferedWriter의 경우가 그럴 수 있다고 하는군요. try-with-resource 를 이용하면 깔끔하게 자원을 해제할 수 있습니다. try() 안에 선언된 객체들을 try 문이 끝날 때 자동으로 해제해주는 기능을 합니다. 다만 모든 객체들에 대해서 해당되는 것은 아니고, 인터페이스 AutoCloseable 을 구현한 객체만 해당됩니다.