Package java.io Previous
Previous
Java API
Java API
Index
Index
Next
Next

Class BufferedInputStream

Fields , Constructors , Methods

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.


Fields


buf

protected byte buf[] 

The buffer where data is stored.


count

protected int count 

The index one greater than the index of the last valid byte in the buffer.


marklimit

protected int marklimit 

The maximum read ahead allowed after a call to the mark method before subsequent calls to the reset method fail.


markpos

protected int markpos 

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


pos

protected int pos 

The current position in the buffer. This is the index of the next character to be read from the buf array.


Constructors


BufferedInputStream

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.

ParameterDescription
in the underlying input stream


BufferedInputStream

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.

ParameterDescription
in the underlying input stream
size the buffer size


Methods


available

public int available() 
throws IOException 

Determines 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:

IOException

If an I/O error occurs.

Overrides:

available in class FilterInputStream .


mark

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.

ParameterDescription
readlimit the maximum limit of bytes that can be read before the mark position becomes invalid.

Overrides:

mark in class FilterInputStream .


markSupported

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 .


read

public int read() 
throws IOException 

Reads 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:

IOException

If an I/O error occurs.

Overrides:

read in class FilterInputStream .


read

public int read(byte  b[], int  off, int  len) 
throws IOException 

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

ParameterDescription
b the buffer into which the data is read
off the start offset of the data
len the maximum number of bytes read

Throw:

IOException

If an I/O error occurs.

Overrides:

read in class FilterInputStream .


reset

public void reset() 
throws IOException 

Repositions this stream to the position at the time the mark method was last called on this input stream

Throw:

IOException

If this stream has not been marked or if the mark has been invalidated.

Overrides:

reset in class FilterInputStream .


skip

public long skip(long  n) 
throws IOException 

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

ParameterDescription
n the number of bytes to be skipped

Throw:

IOException

If an I/O error occurs.

Overrides:

skip in class FilterInputStream .



Top© 1996 Sun Microsystems, Inc. All rights reserved.