@NonNullByDefault

# Package java.io

Contains Input/Output streams communication classes.

- Interface Summary
  Interface | Description
  --- | ---
  Closeable | A `Closeable` is a source or destination of data that can be closed.
  DataInput | The `DataInput` interface provides for reading bytes from a binary stream and reconstructing from them data in any of the Java primitive types.
  DataOutput | The `DataOutput` interface provides for converting data from any of the Java primitive types to a series of bytes and writing these bytes to a binary stream.
  Flushable | A `Flushable` is a destination of data that can be flushed.
  Serializable | This interface is only defined for hierarchy compatibility.

- Class Summary
  Class | Description
  --- | ---
  ByteArrayInputStream | A `ByteArrayInputStream` contains an internal buffer that contains bytes that may be read from the stream.
  ByteArrayOutputStream | This class implements an output stream in which the data is written into a byte array.
  DataInputStream | A data input stream lets an application read primitive Java data types from an underlying input stream in a machine-independent way.
  DataOutputStream | A data output stream lets an application write primitive Java data types to an output stream in a portable way.
  FilterInputStream | A `FilterInputStream` contains some other input stream, which it uses as its basic source of data, possibly transforming the data along the way or providing additional functionality.
  FilterOutputStream | This class is the superclass of all classes that filter output streams.
  InputStream | This abstract class is the superclass of all classes representing an input stream of bytes.
  InputStreamReader | An InputStreamReader is a bridge from byte streams to character streams: It reads bytes and decodes them into characters using a specified `charset`.
  OutputStream | This abstract class is the superclass of all classes representing an output stream of bytes.
  OutputStreamWriter | An OutputStreamWriter is a bridge from character streams to byte streams: Characters written to it are encoded into bytes using a specified `charset`.
  PrintStream | A `PrintStream` adds functionality to another output stream, namely the ability to print representations of various data values conveniently.
  Reader | Abstract class for reading character streams.
  Writer | Abstract class for writing to character streams.

- Exception Summary
  Exception | Description
  --- | ---
  EOFException | Signals that an end of file or end of stream has been reached unexpectedly during input.
  InterruptedIOException | Signals that an I/O operation has been interrupted.
  IOException | Signals that an I/O exception of some sort has occurred.
  UnsupportedEncodingException | The Character Encoding is not supported.
  UTFDataFormatException | Signals that a malformed string in modified UTF-8 format has been read in a data input stream or by any class that implements the data input interface.