# Package org.apache.commons.io.input

This package provides implementations of input classes, such as `InputStream` and `Reader`.

See: Description

Interface Summary
TailerListener: Listener for events from a `Tailer`.

Class Summary
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.
BOMInputStream: This class is used to wrap a stream that includes an encoded `ByteOrderMark` as its first bytes.
BoundedInputStream: This is a stream that will only supply bytes up to a certain length - if its position goes above that, it will stop.
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: Broken input stream.
CharSequenceInputStream: `InputStream` implementation that can read from String, StringBuffer, StringBuilder or CharBuffer.
CharSequenceReader: `Reader` implementation that can read from String, StringBuffer, StringBuilder or CharBuffer.
ClassLoaderObjectInputStream: A special ObjectInputStream that loads a class based on a specified `ClassLoader` rather than the system default.
ClosedInputStream: Closed input stream.
CloseShieldInputStream: Proxy stream that prevents the underlying input stream from being closed.
CountingInputStream: A decorating input stream that counts the number of bytes that have passed through the stream so far.
DemuxInputStream: Data written to this stream is forwarded to a stream that has been associated with this thread.
InfiniteCircularInputStream: An `InputStream` that infinitely repeats provided bytes.
MessageDigestCalculatingInputStream: This class is an example for using an `ObservableInputStream`.
MessageDigestCalculatingInputStream.MessageDigestMaintainingObserver: Maintains the message digest.
NullInputStream: A functional, 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.Observer
ProxyInputStream: 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.
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.
ReaderInputStream: `InputStream` implementation that reads a character stream from a `Reader` and transforms it to a byte stream using a specified charset encoding.
ReversedLinesFileReader: Reads lines in a file reversely (similar to a BufferedReader, but starting at the last line).
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.
Tailer: Simple implementation of the unix "tail -f" functionality.
TailerListenerAdapter: `TailerListener` Adapter.
TeeInputStream: InputStream proxy that transparently writes a copy of all bytes read from the proxied stream to a given OutputStream.
UnixLineEndingInputStream: A filtering input stream that ensures the content will have unix-style line endings, LF.
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.

Exception Summary
XmlStreamReaderException: The XmlStreamReaderException is thrown by the XmlStreamReader constructors if the charset encoding can not be determined according to the XML 1.0 specification and RFC 3023.

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

This package provides implementations of input classes, such as `InputStream` and `Reader`.