# Package org.apache.commons.io.input

package org.apache.commons.io.input
Provides implementations of input classes, such as `InputStream` and `Reader`.

- Related Packages
  Package
  Description
  org.apache.commons.io
  Provides classes for working with streams, readers, writers and files.
  org.apache.commons.io.input.buffer
  Provides implementations of buffered input classes, such as `CircularBufferInputStream` and `PeekableInputStream`.
- Class
  Description
  AbstractCharacterFilterReader
  A filter reader that filters out characters where subclasses decide which characters to filter out.
  AbstractInputStream
  Abstracts some InputStream operations for implementations in this package.
  AutoCloseInputStream
  Proxy stream that closes and discards the underlying stream as soon as the end of input has been reached or when the stream is explicitly closed.
  AutoCloseInputStream.Builder
  Builds a new `AutoCloseInputStream` instance.
  BOMInputStream
  This class is used to wrap a stream that includes an encoded `ByteOrderMark` as its first bytes.
  BOMInputStream.Builder
  Builds a new `BOMInputStream`.
  BoundedInputStream
  Reads bytes up to a maximum count and stops once reached.
  BoundedInputStream.Builder
  Builds a new `BoundedInputStream`.
  BoundedReader
  A reader that imposes a limit to the number of characters that can be read from an underlying reader, returning EOF when this limit is reached, regardless of state of underlying reader.
  BrokenInputStream
  Always throws an exception from all `InputStream` methods where `IOException` is declared.
  BrokenReader
  Always throws an exception from all `Reader` methods where `IOException` is declared.
  BufferedFileChannelInputStream
  `InputStream` implementation which uses direct buffer to read a file to avoid extra copy of data between Java and native memory which happens when using `BufferedInputStream`.
  BufferedFileChannelInputStream.Builder
  Builds a new `BufferedFileChannelInputStream`.
  CharacterFilterReader
  A filter reader that filters out a given character represented as an `int` code point, handy to remove known junk characters from CSV files for example.
  CharacterSetFilterReader
  A filter reader that removes a given set of characters represented as `int` code points, handy to remove known junk characters from CSV files for example.
  CharSequenceInputStream
  Implements an `InputStream` to read bytes from String, StringBuffer, StringBuilder or CharBuffer, encoded using the specified Charset.
  CharSequenceInputStream.Builder
  Builds a new `CharSequenceInputStream`.
  CharSequenceReader
  `Reader` implementation that can read from String, StringBuffer, StringBuilder or CharBuffer.
  ChecksumInputStream
  Automatically verifies a `Checksum` value once the stream is exhausted or the count threshold is reached.
  ChecksumInputStream.Builder
  Builds a new `ChecksumInputStream`.
  CircularInputStream
  An `InputStream` that repeats provided bytes for given target byte count.
  ClassLoaderObjectInputStream
  A special ObjectInputStream that loads a class based on a specified `ClassLoader` rather than the system default.
  ClosedInputStream
  Always returns `IOUtils.EOF` to all attempts to read something from an input stream.
  ClosedReader
  Always returns `IOUtils.EOF` to all attempts to read something from it.
  CloseShieldInputStream
  Proxy stream that prevents the underlying input stream from being closed.
  CloseShieldReader
  Proxy reader that prevents the underlying reader from being closed.
  CountingInputStream
  Deprecated.
  Use `BoundedInputStream` (unbounded by default).
  DemuxInputStream
  Data written to this stream is forwarded to a stream that has been associated with this thread.
  InfiniteCircularInputStream
  An `InputStream` that infinitely repeats the provided bytes.
  MarkShieldInputStream
  This is an alternative to `ByteArrayInputStream` which removes the synchronization overhead for non-concurrent access; as such this class is not thread-safe.
  MemoryMappedFileInputStream
  An `InputStream` that utilizes memory mapped files to improve performance.
  MemoryMappedFileInputStream.Builder
  Builds a new `MemoryMappedFileInputStream`.
  MessageDigestCalculatingInputStream
  Deprecated.
  Use `MessageDigestInputStream`.
  MessageDigestCalculatingInputStream.Builder
  Builds a new `MessageDigestCalculatingInputStream`.
  MessageDigestCalculatingInputStream.MessageDigestMaintainingObserver
  Maintains the message digest.
  MessageDigestInputStream
  This class is an example for using an `ObservableInputStream`.
  MessageDigestInputStream.Builder
  Builds new `MessageDigestInputStream`.
  MessageDigestInputStream.MessageDigestMaintainingObserver
  Maintains the message digest.
  NullInputStream
  A light weight `InputStream` that emulates a stream of a specified size.
  NullReader
  A functional, light weight `Reader` that emulates a reader of a specified size.
  ObservableInputStream
  The `ObservableInputStream` allows, that an InputStream may be consumed by other receivers, apart from the thread, which is reading it.
  ObservableInputStream.AbstractBuilder<T extends ObservableInputStream.AbstractBuilder<T>>
  For subclassing builders from `BoundedInputStream` subclassses.
  ObservableInputStream.Builder
  Builds instances of `ObservableInputStream`.
  ObservableInputStream.Observer
  Abstracts observer callback for `ObservableInputStream`s.
  ProxyInputStream
  A proxy stream which acts as a `FilterInputStream`, by passing all method calls on to the proxied stream, not changing which methods are called.
  ProxyInputStream.AbstractBuilder<T,B extends AbstractStreamBuilder<T,B>>
  Abstracts builder properties for subclasses.
  ProxyReader
  A Proxy stream which acts as expected, that is it passes the method calls on to the proxied stream and doesn't change which methods are being called.
  QueueInputStream
  Simple alternative to JDK `PipedInputStream`; queue input stream provides what's written in queue output stream.
  QueueInputStream.Builder
  Builds a new `QueueInputStream`.
  RandomAccessFileInputStream
  Streams data from a `RandomAccessFile` starting at its current position.
  RandomAccessFileInputStream.Builder
  Builds a new `RandomAccessFileInputStream`.
  ReadAheadInputStream
  Implements `InputStream` to asynchronously read ahead from an underlying input stream when a specified amount of data has been read from the current buffer.
  ReadAheadInputStream.Builder
  Builds a new `ReadAheadInputStream`.
  ReaderInputStream
  `InputStream` implementation that reads a character stream from a `Reader` and transforms it to a byte stream using a specified charset encoding.
  ReaderInputStream.Builder
  Builds a new `ReaderInputStream`.
  ReversedLinesFileReader
  Reads lines in a file reversely (similar to a BufferedReader, but starting at the last line).
  ReversedLinesFileReader.Builder
  Builds a new `ReversedLinesFileReader`.
  SequenceReader
  Provides the contents of multiple `Reader`s in sequence.
  SwappedDataInputStream
  DataInput for systems relying on little-endian data formats.
  TaggedInputStream
  An input stream decorator that tags potential exceptions so that the stream that caused the exception can easily be identified.
  TaggedReader
  A reader decorator that tags potential exceptions so that the reader that caused the exception can easily be identified.
  Tailer
  Simple implementation of the UNIX "tail -f" functionality.
  Tailer.Builder
  Builds a new `Tailer`.
  Tailer.RandomAccessResourceBridge
  Bridges access to a resource for random access, normally a file.
  Tailer.Tailable
  A tailable resource like a file.
  TailerListener
  Listener for events from a `Tailer`.
  TailerListenerAdapter
  `TailerListener` Adapter.
  TeeInputStream
  InputStream proxy that transparently writes a copy of all bytes read from the proxied stream to a given OutputStream.
  TeeReader
  Reader proxy that transparently writes a copy of all characters read from the proxied reader to a given Reader.
  ThrottledInputStream
  Provides bandwidth throttling on a specified InputStream.
  ThrottledInputStream.Builder
  Builds a new `ThrottledInputStream`.
  TimestampedObserver
  An observer with timestamps.
  UncheckedBufferedReader
  A `BufferedReader` that throws `UncheckedIOException` instead of `IOException`.
  UncheckedBufferedReader.Builder
  Builds a new `UncheckedBufferedReader`.
  UncheckedFilterInputStream
  A `BufferedReader` that throws `UncheckedIOException` instead of `IOException`.
  UncheckedFilterInputStream.Builder
  Builds a new `UncheckedFilterInputStream`.
  UncheckedFilterReader
  A `FilterReader` that throws `UncheckedIOException` instead of `IOException`.
  UncheckedFilterReader.Builder
  Builds a new `UncheckedFilterReader`.
  UnixLineEndingInputStream
  A filtering input stream that ensures the content will have UNIX-style line endings, LF.
  UnsynchronizedBufferedInputStream
  An unsynchronized version of `BufferedInputStream`, not thread-safe.
  UnsynchronizedBufferedInputStream.Builder
  Builds a new `UnsynchronizedBufferedInputStream`.
  UnsynchronizedBufferedReader
  Wraps an existing `Reader` and buffers the input without any synchronization.
  UnsynchronizedByteArrayInputStream
  This is an alternative to `ByteArrayInputStream` which removes the synchronization overhead for non-concurrent access; as such this class is not thread-safe.
  UnsynchronizedByteArrayInputStream.Builder
  Builds a new `UnsynchronizedByteArrayInputStream`.
  UnsynchronizedFilterInputStream
  An unsynchronized version of `FilterInputStream`, not thread-safe.
  UnsynchronizedFilterInputStream.Builder
  Builds a new `UnsynchronizedFilterInputStream`.
  UnsynchronizedReader
  A `Reader` without any of the superclass' synchronization.
  WindowsLineEndingInputStream
  A filtering input stream that ensures the content will have Windows line endings, CRLF.
  XmlStreamReader
  Character stream that handles all the necessary Voodoo to figure out the charset encoding of the XML document within the stream.
  XmlStreamReader.Builder
  Builds a new `XmlStreamWriter`.
  XmlStreamReaderException
  The XmlStreamReaderException is thrown by the XmlStreamReader constructors if the charset encoding cannot be determined according to the XML 1.0 specification and RFC 3023.