# Package org.apache.commons.io.input

Provides implementations of input classes, such as `InputStream` and `Reader`.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  Tailer.RandomAccessResourceBridge | Bridges access to a resource for random access, normally a file.
  Tailer.Tailable | A tailable resource like a file.
  TailerListener | Listens to events from a `Tailer`.

- Class Summary
  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.AbstractBuilder<T extends BoundedInputStream.AbstractBuilder<T>> | For subclassing builders from `BoundedInputStream` subclassses.
  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`.
  ByteBufferCleaner | Cleans a direct `ByteBuffer`.
  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.
  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.
  Input | Package-wide internals for input.
  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.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 lightweight `InputStream` that emulates a stream of a specified size.
  NullReader | A functional, lightweight `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 | Constructs a new `ReaderInputStream` with a default input buffer size of `IOUtils.DEFAULT_BUFFER_SIZE` characters.
  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`.
  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 an InputStream as a filter input stream.
  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.
  UnsupportedOperationExceptions | Package-private factory for `UnsupportedOperationException` to provide messages with consistent formatting.
  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`.

- Exception Summary
  Exception | Description
  --- | ---
  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.

## Package org.apache.commons.io.input Description

Provides implementations of input classes, such as `InputStream` and `Reader`.