CHAPTER 22: The Package java.io Previous
Previous
Java Language
Java Language
Index
Index
Next
Next

22.10 The Class java.io.BufferedInputStream

22.10.1 buf , 22.10.2 count , 22.10.3 pos , 22.10.4 markpos , 22.10.5 marklimit , 22.10.6 BufferedInputStream , 22.10.7 BufferedInputStream , 22.10.8 read , 22.10.9 read , 22.10.10 read , 22.10.11 skip , 22.10.12 available , 22.10.13 mark , 22.10.14 reset , 22.10.15 markSupported

A BufferedInputStream adds functionality to another input stream-namely, the ability to buffer the input and to support the mark and reset methods. 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. The mark operation remembers a point in the input stream and the reset operation causes all the bytes read since the most recent mark operation to be reread before new bytes are taken from the contained input stream.

public class BufferedInputStream extends FilterInputStream {
	protected byte[] buf;
	protected int count = 0;
	protected int pos = 0;
	protected int markpos = -1;
	protected int marklimit = 0;
	public BufferedInputStream(InputStream in);
	public BufferedInputStream(InputStream in, int size);
	public int read() throws IOException;
	public int read(byte[] b)
		throws IOException, NullPointerException;
	public int read(byte[] b, int off, int len)
		throws IOException, NullPointerException,
			IndexOutOfBoundsException;
	public long skip(long n) throws IOException;
	public int available() throws IOException;
	public void mark(int readlimit);
	public void reset() throws IOException;
	public boolean markSupported();
}


22.10.1 buf

protected byte[] buf;

The internal buffer array. When necessary, it may be replaced by another array of a different size.


22.10.2 count

protected int count = 0;

This value is always in the range 0 through buf.length; elements buf[0] through buf[count-1] contain buffered input data obtained from the underlying input stream.


22.10.3 pos

protected int pos = 0;

This value is always in the range 0 through count. If it is less than count, then buf[pos] is the next byte to be supplied as input; if it is equal to count, then the next read or skip operation will require more bytes to be read from the contained input stream.


22.10.4 markpos

protected int markpos = -1;

This value is always in the range -1 through pos. If there is no marked position in the input stream, this field is -1. If there is a marked position in the input stream, then buf[markpos] is the first byte to be supplied as input after a reset operation. If markpos is not -1, then all bytes from positions buf[markpos] through buf[pos-1] must remain in the buffer array (though they may be moved to another place in the buffer array, with suitable adjustments to the values of count, pos, and markpos); they may not be discarded unless and until the difference between pos and markpos exceeds marklimit.


22.10.5 marklimit

protected int marklimit;

Whenever the difference between pos and markpos exceeds marklimit, then the mark may be dropped by setting markpos to -1.


22.10.6 BufferedInputStream

public BufferedInputStream(InputStream in)

This constructor initializes a newly created BufferedInputStream by saving its argument, the input stream in, for later use. An internal buffer array is created and stored in buf.


22.10.7 BufferedInputStream

public BufferedInputStream(InputStream in, int size)

This constructor initializes a newly created BufferedInputStream by saving its argument, the input stream in, for later use. An internal buffer array of length size is created and stored in buf.


22.10.8 read

public int read() throws IOException

See the general contract of the read method of InputStream (S22.3.1).

Overrides the read method of FilterInputStream (S22.9.3).


22.10.9 read

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

See the general contract of the read method of InputStream (S22.3.2).

Overrides the read method of FilterInputStream (S22.9.4).


22.10.10 read

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

See the general contract of the read method of InputStream (S22.3.3).

Overrides the read method of FilterInputStream (S22.9.5).


22.10.11 skip

public long skip(long n) throws IOException

See the general contract of the skip method of InputStream (S22.3.4).

Overrides the skip method of FilterInputStream (S22.9.6).


22.10.12 available

public int available() throws IOException

See the general contract of the available method of InputStream (S22.3.5).

Overrides the available method of FilterInputStream (S22.9.7).


22.10.13 mark

public void mark(int readlimit)

The field marklimit is set equal to the argument and markpos is set equal to pos

Overrides the mark method of FilterInputStream (S22.9.9).


22.10.14 reset

public void reset() throws IOException

See the general contract of the reset method of InputStream (S22.3.8).

If markpos is -1 (no mark has been set or the mark has been invalidated), an IOException is thrown. Otherwise, pos is set equal to markpos.

Overrides the reset method of FilterInputStream (S22.9.10).


22.10.15 markSupported

public boolean markSupported()

This method returns true (a BufferedInputStream always supports mark).

Overrides the markSupported method of FilterInputStream (S22.9.11).

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