2013-10-15 3 views
0

데이터 블록의 중간에 예기치 않은 EOF가 발견되면 이 StreamCorrruptedException을 던지는 이유는 무엇입니까? (ObjectInputStream.java:2538)Java ObjectInputStream refill : EOFException 대신 StreamCorruptedException이 발생했습니다.

이 경우 EOFException을 던지거나 StreamCorrruptedException을 던져야하는 다른 이유가 있습니까? 잘 형성 스트림 (Stream)의 마지막에 도달 스트림 중간 오브젝트의 끝에 도달 사이의 구별이

답변

1

. 내가 알 수없는 객체 번호로 스트림을 읽는 중이라면 EOFException을받을 때까지 readObject()을 계속 호출 할 수 있습니다. 그리고 모든 것이 성공적으로 읽혔습니다. readObject()가 객체를 읽는 중 일부분 인 경우 동일한 예외가 발생하면 마지막 객체가 손상되었음을 알 수 없습니다.

+0

감사합니다. 나는 그 라인을 따라 뭔가를 생각했지만, 잘못된 종류의 물건을 읽을 수도 있다고 생각했습니다. 이것은 버그 일 것이지만 그때 스트림은 실제로 손상되지 않습니다. –