조슈아 블로흐 (Joshua Bloch)의 "Effective Java"항목 7 초판에서 그는 특히 파일 닫기와 관련하여 finally 문을 사용하지 말 것을 권장합니다. "파일 닫기에 최종 결정자에 의존하는 것은 심각한 오류입니다. 두 페이지 나중에 그는 그것이 합법적 인 두 개의 사용 사례 중 하나가 종료 방법을finalisers, closing files and streams
Foo foo = new Foo();
try{
///process foo
} finally{
foo.terminate();
}
클래스는 FileInputStream에와 FileOutputStream에 포함 명시 적 종료 방법 패턴에 있음을 말한다. 그렇다면 결국 finally 문에서 파일을 닫지 않을까요?
1) Joshua Bloch의 Item 7은 모순입니까?
2) 종료 방법 패턴이 필요합니까? 동일한 효과를 낼 finally 문없이 위의 코드를 작성할 수 있습니까?
파이 나라를 확인! = 마지막으로 – Perception
'InputStream'가 종료 할 방법이 없습니다. 어쩌면 당신은'Closeable' 인터페이스의'close()'메소드를 의미 할 수도 있습니다. –