A
BufferedInputStream
adds
functionality to another input stream-namely,
the ability to buffer the input and to
support the
mark
and
reset
methods. When the
BufferedInputStream
is created, an internal buffer array is
created. As bytes from the stream are read
or skipped, the internal buffer is refilled
as necessary from the contained input stream,
many bytes at a time. The
mark
operation remembers a point in the input
stream and the
reset
operation
causes all the bytes read since the most
recent
mark
operation to be
reread before new bytes are taken from
the contained input stream.