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