|
PenProfile 2.x | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.io.InputStream
com.livescribe.ext.io.BufferedInputStream
public class BufferedInputStream
This adds the ability to buffer input. An internal buffer is refilled as necessary. This does not implement the mark/reset functionality.
This class is helpful, for example, when using a DataInputStream
since that class may use single-byte reads when constructing larger
primitive types. The underlying stream may be poorly buffered.
| Field Summary | |
|---|---|
protected byte[] |
buf
The internal buffer. |
protected int |
count
The number of valid bytes in the buffer, in the range 0– buf.length. |
protected InputStream |
in
The wrapped input stream. |
protected int |
pos
The current buffer position, pointing to the next byte to be read from the buffer. |
| Constructor Summary | |
|---|---|
BufferedInputStream(InputStream in,
int bufSize)
Creates a new buffered input stream having the specified buffer size. |
|
| Method Summary | |
|---|---|
int |
available()
Returns the number of bytes that can be read (or skipped over) from this input stream without blocking by the next caller of a method for this input stream. |
void |
close()
Can asynchronously close this stream. |
int |
read()
Reads the next byte of data from the input stream. |
int |
read(byte[] b,
int off,
int len)
Reads up to len bytes of data from the input stream into
an array of bytes. |
long |
skip(long n)
Skips over and discards n bytes of data from this input
stream. |
| Methods inherited from class java.io.InputStream |
|---|
mark, markSupported, read, reset |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected volatile InputStream in
protected volatile byte[] buf
protected int count
buf.length.
protected int pos
count. If it
is equal to count then more bytes will need to be read from
the underlying stream for the next read or skip call.
| Constructor Detail |
|---|
public BufferedInputStream(InputStream in,
int bufSize)
in - the input streambufSize - the buffer size
IllegalArgumentException - if the buffer size is ≤ zero.| Method Detail |
|---|
public int read()
throws IOException
InputStreamint 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 input data is available, the end of the stream is detected,
or an exception is thrown.
A subclass must provide an implementation of this method.
read in class InputStream-1 if the end of the
stream is reached.
IOException - if an I/O error occurs.
public int read(byte[] b,
int off,
int len)
throws IOException
InputStreamlen bytes of data from the input stream into
an array of bytes. An attempt is made to read as many as
len bytes, but a smaller number may be read, possibly
zero. The number of bytes actually read is returned as an integer.
This method blocks until input data is available, end of file is detected, or an exception is thrown.
If b is null, a
NullPointerException is thrown.
If off is negative, or len is negative, or
off+len is greater than the length of the array
b, then an IndexOutOfBoundsException is
thrown.
If len is zero, then no bytes are read and
0 is returned; otherwise, there is an attempt to read at
least one byte. If no byte is available because the stream is at end of
file, the value -1 is returned; otherwise, at least one
byte is read and stored into b.
The first byte read is stored into element b[off], the
next one into b[off+1], and so on. The number of bytes read
is, at most, equal to len. Let k be the number of
bytes actually read; these bytes will be stored in elements
b[off] through b[off+k-1],
leaving elements b[off+k] through
b[off+len-1] unaffected.
In every case, elements b[0] through
b[off] and elements b[off+len] through
b[b.length-1] are unaffected.
If the first byte cannot be read for any reason other than end of
file, then an IOException is thrown. In particular, an
IOException is thrown if the input stream has been closed.
The read(b, off, len) method
for class InputStream simply calls the method
read() repeatedly. If the first such call results in an
IOException, that exception is returned from the call to
the read(b, off, len) method. If
any subsequent call to read() results in a
IOException, the exception is caught and treated as if it
were end of file; the bytes read up to that point are stored into
b and the number of bytes read before the exception
occurred is returned. Subclasses are encouraged to provide a more
efficient implementation of this method.
read in class InputStreamb - the buffer into which the data is read.off - the start offset in array b
at which the data is written.len - the maximum number of bytes to read.
-1 if there is no more data because the end of
the stream has been reached.
IOException - if an I/O error occurs.InputStream.read()
public long skip(long n)
throws IOException
InputStreamn bytes of data from this input
stream. The skip method may, for a variety of reasons, end
up skipping over some smaller number of bytes, possibly 0.
This may result from any of a number of conditions; reaching end of file
before n bytes have been skipped is only one possibility.
The actual number of bytes skipped is returned. If n is
negative, no bytes are skipped.
The skip method of InputStream creates a
byte array and then repeatedly reads into it until n bytes
have been read or the end of the stream has been reached. Subclasses are
encouraged to provide a more efficient implementation of this method.
skip in class InputStreamn - the number of bytes to be skipped.
IOException - if an I/O error occurs.
public int available()
throws IOException
InputStream The available method for class InputStream
always returns 0.
This method should be overridden by subclasses.
available in class InputStreamIOException - if an I/O error occurs.
public void close()
throws IOException
close in class InputStreamIOException - if there was an error while closing the stream.
|
PenProfile 2.x | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||