
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.