ObjectInput (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: java.io, interface: ObjectInput
Keywords: java.io.ObjectInput interface

# Interface ObjectInput

All Superinterfaces:
  `AutoCloseable, DataInput`

All Known Implementing Classes:
  `ObjectInputStream`

public interface ObjectInput extends DataInput, AutoCloseable
ObjectInput extends the DataInput interface to include the reading of objects. DataInput includes methods for the input of primitive types, ObjectInput extends that interface to include objects, arrays, and Strings.

Since:
  1.1
See Also:
  - `InputStream`
  - `ObjectOutputStream`
  - `ObjectInputStream`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `available()`
  Returns the number of bytes that can be read without blocking.
  `void`
  `close()`
  Closes the input stream.
  `int`
  `read()`
  Reads a byte of data.
  `int`
  `read(byte[] b)`
  Reads into an array of bytes.
  `int`
  `read(byte[] b, int off, int len)`
  Reads into an array of bytes.
  `Object`
  `readObject()`
  Read and return an object.
  `long`
  `skip(long n)`
  Skips n bytes of input.

  ### Methods declared in interface DataInput

  `readBoolean, readByte, readChar, readDouble, readFloat, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedShort, readUTF, skipBytes`
  Modifier and Type
  Method
  Description
  `boolean`
  `readBoolean()`
  Reads one input byte and returns `true` if that byte is nonzero, `false` if that byte is zero.
  `byte`
  `readByte()`
  Reads and returns one input byte.
  `char`
  `readChar()`
  Reads two input bytes and returns a `char` value.
  `double`
  `readDouble()`
  Reads eight input bytes and returns a `double` value.
  `float`
  `readFloat()`
  Reads four input bytes and returns a `float` value.
  `void`
  `readFully(byte[] b)`
  Reads some bytes from an input stream and stores them into the buffer array `b`.
  `void`
  `readFully(byte[] b, int off, int len)`
  Reads `len` bytes from an input stream.
  `int`
  `readInt()`
  Reads four input bytes and returns an `int` value.
  `String`
  `readLine()`
  Reads the next line of text from the input stream.
  `long`
  `readLong()`
  Reads eight input bytes and returns a `long` value.
  `short`
  `readShort()`
  Reads two input bytes and returns a `short` value.
  `int`
  `readUnsignedByte()`
  Reads one input byte, zero-extends it to type `int`, and returns the result, which is therefore in the range `0` through `255`.
  `int`
  `readUnsignedShort()`
  Reads two input bytes and returns an `int` value in the range `0` through `65535`.
  `String`
  `readUTF()`
  Reads in a string that has been encoded using a modified UTF-8 format.
  `int`
  `skipBytes(int n)`
  Makes an attempt to skip over `n` bytes of data from the input stream, discarding the skipped bytes.

- ## Method Details

  - ### readObject

    Object readObject() throws ClassNotFoundException, IOException
    Read and return an object. The class that implements this interface defines where the object is "read" from.
    Returns:
      the object read from the stream
    Throws:
      `ClassNotFoundException` - If the class of a serialized object cannot be found.
      `IOException` - If any of the usual Input/Output related exceptions occur.

  - ### read

    int read() throws IOException
    Reads a byte of data. This method will block if no input is available.
    Returns:
      the byte read, or -1 if the end of the stream is reached.
    Throws:
      `IOException` - If an I/O error has occurred.

  - ### read

    int read(byte[] b) throws IOException
    Reads into an array of bytes. This method will block until some input is available.
    Parameters:
      `b` - the buffer into which the data is read
    Returns:
      the total number of bytes read into the buffer, or `-1` if there is no more data because the end of the stream has been reached.
    Throws:
      `IOException` - If an I/O error has occurred.

  - ### read

    int read(byte[] b, int off, int len) throws IOException
    Reads into an array of bytes. This method will block until some input is available.
    Parameters:
      `b` - the buffer into which the data is read
      `off` - the start offset of the data
      `len` - the maximum number of bytes read
    Returns:
      the total number of bytes read into the buffer, or `-1` if there is no more data because the end of the stream has been reached.
    Throws:
      `IOException` - If an I/O error has occurred.
      `IndexOutOfBoundsException` - If `off` is negative, `len` is negative, or `len` is greater than `b.length - off`

  - ### skip

    long skip(long n) throws IOException
    Skips n bytes of input.
    Parameters:
      `n` - the number of bytes to be skipped
    Returns:
      the actual number of bytes skipped.
    Throws:
      `IOException` - If an I/O error has occurred.

  - ### available

    int available() throws IOException
    Returns the number of bytes that can be read without blocking.
    Returns:
      the number of available bytes.
    Throws:
      `IOException` - If an I/O error has occurred.

  - ### close

    void close() throws IOException
    Closes the input stream. Must be called to release any resources associated with the stream.
    Specified by:
      `close` in interface `AutoCloseable`
    Throws:
      `IOException` - If an I/O error has occurred.