Methods Summary |
---|
public synchronized int | available()Returns the number of bytes that can be read from this input
stream without blocking.
The value returned is
count - pos ,
which is the number of bytes remaining to be read from the input buffer.
return count - pos;
|
public void | close()Closing a ByteArrayInputStream has no effect. The methods in
this class can be called after the stream has been closed without
generating an IOException.
|
public void | mark(int readAheadLimit)Set the current marked position in the stream.
ByteArrayInputStream objects are marked at position zero by
default when constructed. They may be marked at another
position within the buffer by this method.
If no mark has been set, then the value of the mark is the
offset passed to the constructor (or 0 if the offset was not
supplied).
Note: The readAheadLimit for this class
has no meaning.
mark = pos;
|
public boolean | markSupported()Tests if this InputStream supports mark/reset. The
markSupported method of ByteArrayInputStream
always returns true .
return true;
|
public synchronized int | read()Reads the next byte of data from this 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 read method
cannot block.
return (pos < count) ? (buf[pos++] & 0xff) : -1;
|
public synchronized int | read(byte[] b, int off, int len)Reads up to len bytes of data into an array of bytes
from this input stream.
If pos equals count ,
then -1 is returned to indicate
end of file. Otherwise, the number k
of bytes read is equal to the smaller of
len and count-pos .
If k is positive, then bytes
buf[pos] through buf[pos+k-1]
are copied into b[off] through
b[off+k-1] in the manner performed
by System.arraycopy . The
value k is added into pos
and k is returned.
This read method cannot block.
if (b == null) {
throw new NullPointerException();
} else if ((off < 0) || (off > b.length) || (len < 0) ||
((off + len) > b.length) || ((off + len) < 0)) {
throw new IndexOutOfBoundsException();
}
if (pos >= count) {
return -1;
}
if (pos + len > count) {
len = count - pos;
}
if (len <= 0) {
return 0;
}
System.arraycopy(buf, pos, b, off, len);
pos += len;
return len;
|
public synchronized void | reset()Resets the buffer to the marked position. The marked position
is 0 unless another position was marked or an offset was specified
in the constructor.
pos = mark;
|
public synchronized long | skip(long n)Skips n bytes of input from this input stream. Fewer
bytes might be skipped if the end of the input stream is reached.
The actual number k
of bytes to be skipped is equal to the smaller
of n and count-pos .
The value k is added into pos
and k is returned.
if (pos + n > count) {
n = count - pos;
}
if (n < 0) {
return 0;
}
pos += n;
return n;
|