The class adds functionality to another input stream, the ability to buffer the input and to support the mark and reset methods. Following are the important points about BufferedInputStream −

  • 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.

Class declaration

Following is the declaration for class −

public class BufferedInputStream
   extends FilterInputStream


Following are the fields for class −

  • protected byte[] buf − This is the internal buffer array where the data is stored.

  • protected int count − This is the index one greater than the index of the last valid byte in the buffer.

  • protected int marklimit − This is the maximum read ahead allowed after a call to the mark method before subsequent calls to the reset method fail.

  • protected int markpos − This is the value of the pos field at the time the last mark method was called.

  • protected int pos − This is the current position in the buffer.

  • protected InputStream in − This is the input stream to be filtered.

Class constructors

Sr.No. Constructor & Description

BufferedInputStream(InputStream in)

This creates a BufferedInputStream and saves its argument, the input stream in, for later use.


BufferedInputStream(InputStream in, int size)

This creates a BufferedInputStream with the specified buffer size, and saves its argument, the input stream in, for later use.

Class methods

Sr.No. Method & Description
1 int available()

This method returns an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking by the next invocation of a method for this input stream.

2 void close()

This method closes this input stream and releases any system resources associated with the stream.

3 void mark(int readlimit)

This method see the general contract of the mark method of InputStream.

4 boolean markSupported()

This method tests if this input stream supports the mark and reset methods.

5 int read()

This method reads the next byte of data from the input stream.

6 int read(byte[] b, int off, int len)

This method reads bytes from this byte-input stream into the specified byte array, starting at the given offset.

7 void reset()

This method repositions this stream to the position at the time the mark method was last called on this input stream.

8 long skip(long n)

This method skips over and discards n bytes of data from this input stream.

Methods inherited

This class inherits methods from the following classes −