Packages  This Package  Prev  Next  Index  

§2.1 Class BufferedInputStream

public  class  java.io.BufferedInputStream
    extends  java.io.FilterInputStream  (I-§2.11)
{
       // Fields
    protected byte buf[];	§2.1.1
    protected int count;	§2.1.2
    protected int marklimit;	§2.1.3
    protected int markpos;	§2.1.4
    protected int pos;	§2.1.5

        // Constructors
    public BufferedInputStream(InputStream  in);	§2.1.6
    public BufferedInputStream(InputStream  in, int size);	§2.1.7
    public int available();	§2.1.8

        // Methods
    public void mark(int  readlimit);	§2.1.9
    public boolean markSupported();	§2.1.10
    public int read();	§2.1.11
    public int read(byte  b[], int  off, int  len);	§2.1.12
    public void reset();	§2.1.13
    public long skip(long  n);	§2.1.14
}
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 (I-§2.1.9) before subsequent calls to the reset method (I-§2.1.13) fail.

markpos

protected int markpos
The value of the pos field (I-§2.1.5) at the time the last mark method (I-§2.1.9) 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 (I-§2.1.1) 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.
Parameters:
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.
Parameters:
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 () and the result of calling the available method of the underlying input stream (I-§2.11.1).

Returns:
the number of bytes that can be read from this input stream without blocking.
Throws
IOException (I-§2.29)
If an I/O error occurs.
Overrides:
available in class FilterInputStream (I-§2.11.3).

mark

public void mark(int readlimit)
Marks the current position in this input stream. A subsequent call to the reset method (I-§2.1.13) 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.
Parameters:
readlimit - the maximum limit of bytes that can be read before the mark position becomes invalid.
Overrides:
mark in class FilterInputStream (I-§2.11.5).

markSupported

public boolean markSupported()
Determines if this input stream supports the mark (I-§2.13.4) and reset (I-§2.13.9) methods. The markSupported method of Buffered-Input-Stream returns true.

Returns:
a boolean indicating if this stream type supports the mark and reset methods.
Overrides:
markSupported in class FilterInputStream (I-§2.11.6).

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 (I-§2.11.1) and returns the next character, if the underlying stream hasn't returned an end-of-stream indicator.

Returns:
the next byte of data, or -1 if the end of the stream is reached.
Throws
IOException (I-§2.29)
If an I/O error occurs.
Overrides:
read in class FilterInputStream (I-§2.11.7).

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 (I-§2.11.1) and unless the underlying stream returns an end-of-stream indicator, it fills the array argument with characters from the newly filled buffer.

Parameters:
b - the buffer into which the data is read
off - the start offset of the data
len - the maximum number of bytes read
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.
Throws
IOException (I-§2.29)
If an I/O error occurs.
Overrides:
read in class FilterInputStream (I-§2.11.9).

reset

public void reset() throws IOException
Repositions this stream to the position at the time the mark method (I-§2.1.9) was last called on this input stream

Throws
IOException (I-§2.29)
If this stream has not been marked or if the mark has been invalidated.
Overrides:
reset in class FilterInputStream (I-§2.11.10).

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, , where , with n. If , 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 (I-§2.11.1) skip method with the argument .

Parameters:
n - the number of bytes to be skipped
Returns:
the actual number of bytes skipped.
Throws
IOException (I-§2.29)
If an I/O error occurs.
Overrides:
skip in class FilterInputStream (I-§2.11.11).

Packages  This Package  Prev  Next  Index
Java API Document (HTML generated by dkramer on April 22, 1996)
Copyright © 1996 Sun Microsystems, Inc. All rights reserved
Please send any comments or corrections to doug.kramer@sun.com