# Package javax.imageio.stream

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

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  ImageInputStream | A seekable input stream interface for use by `ImageReader`s.
  ImageOutputStream | A seekable output stream interface for use by `ImageWriter`s.

- Class Summary
  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.
  ImageInputStreamImpl | An abstract class implementing the `ImageInputStream` interface.
  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`.

## Package javax.imageio.stream Description

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

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.