Closeable, AutoCloseablepublic class MultiByteArrayInputStream extends InputStream
MultiByteArrayInputStream contains an internal buffer that contains bytes that
may be read from the stream.
An internal counter keeps track of the next byte to be supplied by the read method.
Closing a MultiByteArrayInputStream has no effect. The methods in this class can be called after the stream has been closed without generating an IOException.
| 限定符和类型 | 字段 | 说明 |
|---|---|---|
protected List<ByteArrayInputStream> |
baisList |
ByteArrayInputStream List
|
protected long |
count |
The index one greater than the last valid character in the input stream buffer.
|
protected long |
mark |
The currently marked position in the stream.
|
protected long |
pos |
The index of the next character to read from the input stream buffer.
|
| 构造器 | 说明 |
|---|---|
MultiByteArrayInputStream(byte[]... bufs) |
Creates a
MultiByteArrayInputStream so that
it uses buf as its buffer array. |
| 限定符和类型 | 方法 | 说明 |
|---|---|---|
int |
available() |
获取剩余可读取的字节数。
|
long |
availableBytes() |
Returns the number of remaining bytes that can be read (or skipped over)
from this input stream.
|
void |
close() |
Closing a MultiByteArrayInputStream has no effect.
|
private int |
findFirstAvailableGreaterThan0() |
|
void |
mark(int readAheadLimit) |
Set the current marked position in the stream.
|
boolean |
markSupported() |
Tests if this
InputStream supports mark/reset. |
int |
read() |
Reads the next byte of data from this input stream.
|
int |
read(byte[] b,
int off,
int len) |
Reads up to
len bytes of data into an array of bytes from this input stream. |
void |
reset() |
Resets the buffer to the marked position.
|
long |
skip(long n) |
Skips
n bytes of input from this input stream. |
read, readAllBytes, readNBytes, transferToprotected List<ByteArrayInputStream> baisList
protected long pos
count.
The next byte to be read from the input stream buffer will be buf[pos].protected long mark
mark() method.
The current buffer position is set to this point by the reset() method.
If no mark has been set, then the value of mark is the offset passed to the constructor (or 0 if the offset was not supplied).
protected long count
buf.
It is one greater than the position of the last byte within buf that
can ever be read from the input stream buffer.public MultiByteArrayInputStream(byte[]... bufs)
MultiByteArrayInputStream so that
it uses buf as its buffer array. The buffer array is not copied.
The initial value of pos is 0 and the initial value
of count is the length of buf.bufs - the input buffers.public int read()
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.
read 在类中 InputStream-1 if the end of the stream has been reached.public int read(byte[] b,
int off,
int len)
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.
read 在类中 InputStreamb - the buffer into which the data is read.off - the start offset in the destination array blen - the maximum number of bytes read.-1 if there is no more data because the end of
the stream has been reached.NullPointerException - If b is null.IndexOutOfBoundsException - If off is negative, len is negative,
or len is greater than b.length - offprivate int findFirstAvailableGreaterThan0()
ByteArrayInputStream.available() 大于0的 ByteArrayInputStream 在列表中的序号public long skip(long n)
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.skip 在类中 InputStreamn - the number of bytes to be skipped.public int available()
Integer.MAX_VALUE - 8 时,返回 Integer.MAX_VALUE - 8,否则返回实际的数量。available 在类中 InputStreamInteger.MAX_VALUE - 8 时,返回 Integer.MAX_VALUE - 8,否则返回实际的数量。public long availableBytes()
The value returned is count - pos,
which is the number of bytes remaining to be read from the input buffer.
public boolean markSupported()
InputStream supports mark/reset. The
markSupported method of MultiByteArrayInputStream
always returns true.markSupported 在类中 InputStreamtrue if supported, otherwise, falsepublic void mark(int readAheadLimit)
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 在类中 InputStreampublic void reset()
reset 在类中 InputStreampublic void close()
throws IOException
close 在接口中 AutoCloseableclose 在接口中 Closeableclose 在类中 InputStreamIOExceptionCopyright © 2023. All rights reserved.