java.lang.Object | |||
↳ | java.io.InputStream | ||
↳ | java.io.FilterInputStream | ||
↳ | java.io.BufferedInputStream |
Wraps an existing InputStream and buffers the input. Expensive interaction with the underlying input stream is minimized, since most (smaller) requests can be satisfied by accessing the buffer alone. The drawback is that some extra space is required to hold the buffer and that copying takes place when filling that buffer, but this is usually outweighed by the performance benefits.
A typical application pattern for the class looks like this:BufferedInputStream buf = new BufferedInputStream(new FileInputStream("file.java"));
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
buf | The buffer containing the current bytes read from the target InputStream. | ||||||||||
count | The total number of bytes inside the byte array buf . |
||||||||||
marklimit | The current limit, which when passed, invalidates the current mark. | ||||||||||
markpos | The currently marked position. | ||||||||||
pos | The current position within the byte array buf . |
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.io.FilterInputStream
|
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Returns the number of bytes that are available before this stream will
block.
| |||||||||||
Closes this stream.
| |||||||||||
Sets a mark position in this stream.
| |||||||||||
Indicates whether
BufferedInputStream supports the mark()
and reset() methods. | |||||||||||
Reads at most
length bytes from this stream and stores them in
byte array buffer starting at offset offset . | |||||||||||
Reads a single byte from this stream and returns it as an integer in the
range from 0 to 255.
| |||||||||||
Resets this stream to the last marked location.
| |||||||||||
Skips
amount number of bytes in this stream. |
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class java.io.FilterInputStream
| |||||||||||
From class java.io.InputStream
| |||||||||||
From class java.lang.Object
| |||||||||||
From interface java.io.Closeable
|
The buffer containing the current bytes read from the target InputStream.
The total number of bytes inside the byte array buf
.
The current limit, which when passed, invalidates the current mark.
The currently marked position. -1 indicates no mark has been set or the mark has been invalidated.
The current position within the byte array buf
.
Constructs a new BufferedInputStream
on the InputStream
in
. The default buffer size (8 KB) is allocated and all reads
can now be filtered through this stream.
in | the InputStream the buffer reads from. |
---|
Constructs a new BufferedInputStream
on the InputStream
in
. The buffer size is specified by the parameter size
and all reads are now filtered through this stream.
in | the input stream the buffer reads from. |
---|---|
size | the size of buffer to allocate. |
IllegalArgumentException | if size < 0 . |
---|
Returns the number of bytes that are available before this stream will block. This method returns the number of bytes available in the buffer plus those available in the source stream.
IOException | if this stream is closed. |
---|
Closes this stream. The source stream is closed and any resources associated with it are released.
IOException | if an error occurs while closing this stream. |
---|
Sets a mark position in this stream. The parameter readlimit
indicates how many bytes can be read before a mark is invalidated.
Calling reset()
will reposition the stream back to the marked
position if readlimit
has not been surpassed. The underlying
buffer may be increased in size to allow readlimit
number of
bytes to be supported.
readlimit | the number of bytes that can be read before the mark is invalidated. |
---|
Reads at most length
bytes from this stream and stores them in
byte array buffer
starting at offset offset
. Returns the
number of bytes actually read or -1 if no bytes were read and the end of
the stream was encountered. If all the buffered bytes have been used, a
mark has not been set and the requested number of bytes is larger than
the receiver's buffer size, this implementation bypasses the buffer and
simply places the results directly into buffer
.
buffer | the byte array in which to store the bytes read. |
---|---|
offset | the initial position in buffer to store the bytes read
from this stream. |
length | the maximum number of bytes to store in buffer . |
IndexOutOfBoundsException | if offset < 0 or length < 0 , or if
offset + length is greater than the size of
buffer . |
---|---|
IOException | if the stream is already closed or another IOException occurs. |
Reads a single byte from this stream and returns it as an integer in the range from 0 to 255. Returns -1 if the end of the source string has been reached. If the internal buffer does not contain any available bytes then it is filled from the source stream and the first byte is returned.
IOException | if this stream is closed or another IOException occurs. |
---|
Resets this stream to the last marked location.
IOException | if this stream is closed, no mark has been set or the mark is
no longer valid because more than readlimit bytes
have been read since setting the mark. |
---|
Skips amount
number of bytes in this stream. Subsequent
read()
's will not return these bytes unless reset()
is
used.
amount | the number of bytes to skip. skip does nothing and
returns 0 if amount is less than zero. |
---|
IOException | if this stream is closed or another IOException occurs. |
---|