Package java.io |
![]() Previous |
![]() Java API |
![]() Index |
![]() Next |
public class java.io.BufferedInputStream extends java.io.FilterInputStream { // Fields protected byte buf[]; protected int count; protected int marklimit; protected int markpos; protected int pos; // Constructors public BufferedInputStream(InputStream in); public BufferedInputStream(InputStream in, int size); public int available(); // Methods public void mark(int readlimit); public boolean markSupported(); public int read(); public int read(byte b[], int off, int len); public void reset(); public long skip(long n); }
The class implements a buffered input stream. By setting up a such an input stream, an application can read bytes from a stream without necessarily causing a call to the underlying system for each byte read. The data is read by blocks into a buffer; subsequent reads can access the data directly from the buffer.
protected byte buf[]The buffer where data is stored.
protected int countThe index one greater than the index of the last valid byte in the buffer.
protected int marklimitThe maximum read ahead allowed after a call to the mark method before subsequent calls to the reset method fail.
protected int markposThe value of the pos field at the time the last mark method was called. The value of this field is -1 if there is no current mark.
protected int posThe current position in the buffer. This is the index of the next character to be read from the buf array.
public BufferedInputStream(InputStream in)Creates a new buffered input stream to read data from the specified input stream with a default 512-byte buffer size.
Parameter Description in the underlying input stream
public BufferedInputStream(InputStream in, int size)Creates a new buffered input stream to read data from the specified input stream with the specified buffer size.
Parameter Description in the underlying input stream size the buffer size
public int available()throws IOExceptionDetermines the number of bytes that can be read from this input stream without blocking.
The available method of BufferedInputStream returns the sum of the the number of bytes remaining to be read in the buffer (count - pos) and the result of calling the available method of the underlying input stream .
Return Value:
Returns the number of bytes that can be read from this input stream without blocking.
Throw:
If an I/O error occurs.
Overrides:
available in class FilterInputStream .
public void mark(int readlimit)Marks the current position in this input stream. A subsequent call to the reset method repositions the stream at the last marked position so that subsequent reads re-read the same bytes.
The readlimit arguments tells the input stream to allow that many bytes to be read before the mark position gets invalidated.
Parameter Description readlimit the maximum limit of bytes that can be read before the mark position becomes invalid. Overrides:
mark in class FilterInputStream .
public boolean markSupported()Determines if this input stream supports the mark and reset methods. The markSupported method of Buffered-Input-Stream returns true.
Return Value:
Returns a boolean indicating if this stream type supports the mark and reset methods.
Overrides:
markSupported in class FilterInputStream .
public int read()throws IOExceptionReads the next byte of data from this buffered input stream. The value byte is returned as an int in the range 0 to 255. If no byte is available because the end of the stream has been reached, the value -1 is returned. This method blocks until either input data is available, the end of the stream is detected, or an exception is thrown.
The read method of BufferedInputStream returns the next byte of data from its buffer if the buffer isn't empty. Otherwise, it refills the buffer from the underlying input stream and returns the next character, if the underlying stream hasn't returned an end-of-stream indicator.
Return Value:
Returns the next byte of data, or -1 if the end of the stream is reached.
Throw:
If an I/O error occurs.
Overrides:
read in class FilterInputStream .
public int read(byte b[], int off, int len)throws IOExceptionReads up to len bytes of data from this buffered input stream into an array of bytes. This method blocks until some input is available.
The read method of BufferedInputStream copies bytes from its buffer into the array argument if the buffer isn't empty. Otherwise, it refills the buffer from the underlying input stream and unless the underlying stream returns an end-of-stream indicator, it fills the array argument with characters from the newly filled buffer.
Return Value:
Returns the total number of bytes read into the buffer, or -1 is there is no more data because the end of the stream has been reached.
Parameter Description b the buffer into which the data is read off the start offset of the data len the maximum number of bytes read Throw:
If an I/O error occurs.
Overrides:
read in class FilterInputStream .
public void reset()throws IOExceptionRepositions this stream to the position at the time the mark method was last called on this input stream
Throw:
If this stream has not been marked or if the mark has been invalidated.
Overrides:
reset in class FilterInputStream .
public long skip(long n)throws IOExceptionSkips over and discards n bytes of data from the input stream. The skip method may, for a variety of reasons, end up skipping over some smaller number of bytes, possibly zero. The actual number of bytes skipped is returned.
The skip method of BufferedInputStream compares the number of bytes it has available in its buffer, a, where a=count-pos, with n. If a £ n, then the pos field is incremented by n. Otherwise, the pos field is incremented to have the value count, and the remaining bytes (if any) are skipped by calling the underlying input stream's skip method with the argument n - a.
Return Value:
Returns the actual number of bytes skipped.
Parameter Description n the number of bytes to be skipped Throw:
If an I/O error occurs.
Overrides:
skip in class FilterInputStream .