84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
认证0级讲师
가장 바깥쪽의 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--
가장 바깥쪽이 닫히고, 가장 바깥쪽이 안쪽을 닫고, 안쪽이 안쪽을 닫는 체인입니다
물론, 셧다운이 실패할 수도 있다고 고집한다면 결국엔 어쩔 수 없겠죠
질문이 다음과 같은 경우:BufferedReader가 닫혀 있으면 InputStreamReader와 InputStream을 닫아야 합니까?그렇다면 이 문제는 정상입니다...
Java io 패키지의 스트림과 리더는 모두 데코레이터 패턴을 사용합니다. 가장 바깥쪽 데코레이터의 close 메소드만 호출하면 되며, 데코레이션된 스트림이나 리더도 닫힙니다.
그래도 작동하지 않으면BufferedReader의 소스 코드를 열고 close 메소드를 보면
BufferedReader
아무리 어려워도 다음 글을 추천합니다. "Java IO: Streams, 그리고 그 위에 데코레이터 패턴 적용"
모든 항목을 순서대로 하나씩 닫아야 합니다. 마지막으로 닫는 것이 좋습니다.
마지막 레벨이 먼저 생성되고, 첫 번째 레벨이 마지막에 생성됩니다
가장 바깥쪽의 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--
가장 바깥쪽이 닫히고, 가장 바깥쪽이 안쪽을 닫고, 안쪽이 안쪽을 닫는 체인입니다
물론, 셧다운이 실패할 수도 있다고 고집한다면 결국엔 어쩔 수 없겠죠
질문이 다음과 같은 경우:BufferedReader가 닫혀 있으면 InputStreamReader와 InputStream을 닫아야 합니까?그렇다면 이 문제는 정상입니다...
Java io 패키지의 스트림과 리더는 모두 데코레이터 패턴을 사용합니다. 가장 바깥쪽 데코레이터의 close 메소드만 호출하면 되며, 데코레이션된 스트림이나 리더도 닫힙니다.
그래도 작동하지 않으면
에서 장식한 리더가 닫히는 것을 볼 수 있습니다.BufferedReader
의 소스 코드를 열고 close 메소드를 보면아무리 어려워도 다음 글을 추천합니다. "Java IO: Streams, 그리고 그 위에 데코레이터 패턴 적용"
모든 항목을 순서대로 하나씩 닫아야 합니다. 마지막으로 닫는 것이 좋습니다.
으아악마지막 레벨이 먼저 생성되고, 첫 번째 레벨이 마지막에 생성됩니다