# Package javax.imageio.stream

package javax.imageio.stream
A package of the Java Image I/O API dealing with low-level I/O from files and streams.

The `ImageInputStream` interface unifies streaming and file-based operations. An abstract base class, `ImageInputStreamImpl` is provided to simplify writing a new `ImageInputStream` class. Concrete implementation classes (`FileImageInputStream`, `FileCacheImageInputStream`, and `MemoryCacheImageInputStream`) are provided that allow input to come from a `File` or `InputStream` with or without the use of a temporary cache file.

The `ImageOutputStream` interface performs an analogous function for output. An abstract base class, `ImageOutputStreamImpl` is provided, along with concrete implementation classes (`FileImageOutputStream`, `FileCacheImageOutputStream`, and `MemoryCacheImageOutputStream`) are provided that allow output to go to a `File` or `OutputStream` with or without the use of a temporary cache file.

The `IIOByteBuffer` class provides an alternative way to perform reads of sequences of bytes that reduces the amount of internal data copying.

Since:
  1.4

- Related Packages
  Package
  Description
  javax.imageio
  The main package of the Java Image I/O API.
  javax.imageio.event
  A package of the Java Image I/O API dealing with synchronous notification of events during the reading and writing of images.
  javax.imageio.metadata
  A package of the Java Image I/O API dealing with reading and writing metadata.
  javax.imageio.spi
  A package of the Java Image I/O API containing the plug-in interfaces for readers, writers, transcoders, and streams, and a runtime registry.
- Class
  Description
  FileCacheImageInputStream
  An implementation of `ImageInputStream` that gets its input from a regular `InputStream`.
  FileCacheImageOutputStream
  An implementation of `ImageOutputStream` that writes its output to a regular `OutputStream`.
  FileImageInputStream
  An implementation of `ImageInputStream` that gets its input from a `File` or `RandomAccessFile`.
  FileImageOutputStream
  An implementation of `ImageOutputStream` that writes its output directly to a `File` or `RandomAccessFile`.
  IIOByteBuffer
  A class representing a mutable reference to an array of bytes and an offset and length within that array.
  ImageInputStream
  A seekable input stream interface for use by `ImageReader`s.
  ImageInputStreamImpl
  An abstract class implementing the `ImageInputStream` interface.
  ImageOutputStream
  A seekable output stream interface for use by `ImageWriter`s.
  ImageOutputStreamImpl
  An abstract class implementing the `ImageOutputStream` interface.
  MemoryCacheImageInputStream
  An implementation of `ImageInputStream` that gets its input from a regular `InputStream`.
  MemoryCacheImageOutputStream
  An implementation of `ImageOutputStream` that writes its output to a regular `OutputStream`.