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

Module java.base
Package java.io

# 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 java.io.DataInput

  `readBoolean, readByte, readChar, readDouble, readFloat, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedShort, readUTF, skipBytes`

- ## 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.