PHP中文网2017-04-18 09:32:18
가장 바깥쪽의 close()를 직접 호출하세요
업데이트:
http://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html#close--
스트림을 닫고 이와 관련된 모든 시스템 리소스를 해제합니다
http://docs.oracle.com/javase/8/docs/api/java/io/InputStreamReader.html#close--
스트림을 닫고 이와 관련된 모든 시스템 리소스를 해제합니다
가장 바깥쪽이 닫히고, 가장 바깥쪽이 안쪽을 닫고, 안쪽이 안쪽을 닫는 체인입니다
물론, 셧다운이 실패할 수도 있다고 고집한다면 결국엔 어쩔 수 없겠죠
阿神2017-04-18 09:32:18
질문이 다음과 같은 경우: BufferedReader가 닫혀 있으면 InputStreamReader와 InputStream을 닫아야 합니까? 그렇다면 이 문제는 정상입니다...
Java io 패키지의 스트림과 리더는 모두 데코레이터 패턴을 사용합니다. 가장 바깥쪽 데코레이터의 close 메소드만 호출하면 되며, 데코레이션된 스트림이나 리더도 닫힙니다.
그래도 작동하지 않으면 BufferedReader
의 소스 코드를 열고 close 메소드를 보면
아무리 어려워도 다음 글을 추천합니다. "Java IO: Streams, 그리고 그 위에 데코레이터 패턴 적용"
怪我咯2017-04-18 09:32:18
모든 항목을 순서대로 하나씩 닫아야 합니다. 마지막으로 닫는 것이 좋습니다.
으아악마지막 레벨이 먼저 생성되고, 첫 번째 레벨이 마지막에 생성됩니다