Abstract class for reading character streams. The only methods that a
subclass must implement are read(char, int, int) and close(). Most
subclasses, however, will override some of the methods defined here in order
to provide higher efficiency, additional functionality, or both.
The object used to synchronize operations on this stream. For
efficiency, a character-stream object may use an object other than
itself to protect critical sections. A subclass should therefore use
the object in this field rather than this or a synchronized
Creates a new character-stream reader whose critical sections will
synchronize on the reader itself.
Closes the stream and releases any system resources associated with
it. Once the stream has been closed, further read(), ready(),
mark(), reset(), or skip() invocations will throw an IOException.
Closing a previously closed stream has no effect.
Resets the stream. If the stream has been marked, then attempt to
reposition it at the mark. If the stream has not been marked, then
attempt to reset it in some way appropriate to the particular stream,
for example by repositioning it to its starting point. Not all
character-input streams support the reset() operation, and some support
reset() without supporting mark().
IOException - If the stream has not been marked,
or if the mark has been invalidated,
or if the stream does not support reset(),
or if some other I/O error occurs