Stream 관련 기능을 사용하다 보면 가끔 겪는 증상이다. java.io.IOException: Stream Closed at java.base/java.io.FileOutputStream.writeBytes(Native Method) at java.base/java.io.FileOutputStream.write(FileOutputStream.java:349) at java.base/java.io.BufferedOutputStream.write(BufferedOutputStream.java:123) at java.base/java.io.FilterOutputStream.write(FilterOutputStream.java:108) 결론부터 얘기하자면 이 오류의 원인은 내용 그대로 Stream으로 뭘 써..
Sonarqube로 소스 분석 결과를 보다가 다음과 같은 지적을 받았다. 이게 왜 문제가 된다는거고 심지어 Critical인가?? finally에서 자원 해제도 잘 했는데 왜?? java7 이후부터는 위의 방식처럼 자원을 열고 자원 해제를 위해 finally에서 닫아주고 하는 방식이 아니라 다음과 같이 사용하는 방법을 권고한다고 한다. try ( FileReader fr = new FileReader(fileName); BufferedReader br = new BufferedReader(fr) ) { return br.readLine(); } catch (...) {} 즉 try 안에 FileReader, BufferedReader와 같이 자원과 관련된 객체를 만들어 주면 된다. 이렇게 하면 final..