ObjectInput — 객체 읽기용 데이터 입력 인터페이스

ObjectInput — 객체 읽기용 데이터 입력 인터페이스

ObjectInputDataInput 인터페이스를 확장해 객체를 읽는 것을 포함해요. DataInput은 기본형 타입 입력을 위한 메서드를 포함하며, ObjectInput은 그 인터페이스를 확장해 객체, 배열, 문자열을 포함시킵니다.

출처: Java API Reference

본문

이 인터페이스는 DataInput, AutoCloseable을 확장합니다. DataInput에서 상속한 readBoolean, readByte, readChar, readDouble, readFloat, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedShort, readUTF, skipBytes 메서드와 함께 객체 읽기 기능을 제공해요. 구현 클래스로 ObjectInputStream이 대표적이에요.

메서드

  • int available() — 블로킹 없이 읽을 수 있는 바이트 수를 반환해요.
  • void close() — 입력 스트림을 닫아요. 스트림과 관련된 자원을 해제하려면 반드시 호출해야 해요. AutoCloseable에서 지정됐어요.
  • int read() — 바이트를 읽어요. 입력이 없으면 블로킹하며, 스트림 끝에 도달하면 -1을 반환해요.
  • int read(byte[] b) — 바이트 배열로 읽어요. 일부 입력이 있을 때까지 블로킹하며, 버퍼로 읽은 총 바이트 수나 스트림 끝에서 -1을 반환해요.
  • int read(byte[] b, int off, int len) — 바이트 배열의 일부로 읽어요. len이 0이거나 b.length - off보다 크면 문제가 생길 수 있어요.
  • Object readObject() throws ClassNotFoundException, IOException — 객체를 읽고 반환해요. 이 인터페이스를 구현하는 클래스는 readObject를 구현해 스트림에서 객체를 읽어 반환해야 해요. 객체의 클래스를 찾을 수 없으면 ClassNotFoundException, 관련 I/O 예외가 발생하면 IOException을 던져요.
  • long skip(long n)n 바이트의 입력을 건너뛰고 실제로 건너뛴 바이트 수를 반환해요.

ObjectInput은 직렬화된 객체를 이진 스트림에서 읽을 때 기본형 값과 객체를 함께 읽을 수 있게 해 줘요.

더 알아보기 (Learn more)