OptionalDataException — 읽지 않은 기본형 데이터로 인한 객체 읽기 실패

OptionalDataException — 읽지 않은 기본형 데이터로 인한 객체 읽기 실패

OptionalDataException은 읽지 않은 기본형 데이터로 인해 객체 읽기 연산이 실패했거나, 스트림에서 직렬화된 객체에 속한 데이터의 끝에 도달했음을 나타내는 예외예요. 두 가지 경우에 던져질 수 있어요: (1) 스트림의 다음 요소가 기본형 데이터인데 객체를 읽으려 시도한 경우 — 이때 length 필드는 스트림에서 즉시 읽을 수 있는 기본형 데이터의 바이트 수로 설정되고 eoffalse예요. (2) 클래스 정의 readObject/readExternal 메서드가 소비할 수 있는 데이터의 끝을 지나 읽으려 시도한 경우 — 이때 eoftrue, length0으로 설정돼요.

출처: Java API Reference

본문

이 클래스는 예외 계층 java.lang.ObjectThrowableExceptionIOExceptionObjectStreamExceptionOptionalDataException을 따르며 Serializable을 구현합니다.

필드

  • int length — 현재 버퍼에서 읽을 수 있는 기본형 데이터의 바이트 수예요.
  • boolean eof — 스트림의 버퍼링된 부분에 더 이상 데이터가 없으면 true예요.

이 예외는 사용자 정의 readObject/readExternal 구현에서 기본형 데이터와 객체 데이터가 섞인 스트림을 처리할 때 조심해야 하는 상황을 알려줘요.

더 알아보기 (Learn more)