|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.io
类 ByteArrayInputStream
java.lang.Object java.io.InputStream java.io.ByteArrayInputStream
- 所有已实现的接口:
- Closeable
-
public class ByteArrayInputStream
- extends InputStream
ByteArrayInputStream
包含一个内部缓冲区,该缓冲区存储从流中读取的字节。内部计数器跟踪 read
方法要提供的下一个字节。
关闭 ByteArrayInputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException。
- 从以下版本开始:
- JDK1.0
- 另请参见:
-
StringBufferInputStream
字段摘要 | |
---|---|
protected byte[] |
buf 由该流的创建者提供的字节数组。 |
protected int |
count 比输入流缓冲区中最后一个有效字符的索引大一的索引。 |
protected int |
mark 流中当前的标记位置。 |
protected int |
pos 要从输入流缓冲区中读取的下一个字符的索引。 |
构造方法摘要 | |
---|---|
ByteArrayInputStream(byte[] buf) 创建一个 ByteArrayInputStream ,使用 buf 作为其缓冲区数组。 |
|
ByteArrayInputStream(byte[] buf, int offset, int length) 创建 ByteArrayInputStream ,使用 buf 作为其缓冲区数组。 |
方法摘要 | |
---|---|
int |
available() 返回可不发生阻塞地从此输入流读取的字节数。 |
void |
close() 关闭 ByteArrayInputStream 无效。 |
void |
mark(int readAheadLimit) 设置流中的当前标记位置。 |
boolean |
markSupported() 测试此 InputStream 是否支持 mark/reset。 |
int |
read() 从此输入流中读取下一个数据字节。 |
int |
read(byte[] b, int off, int len) 将最多 len 个数据字节从此输入流读入字节数组。 |
void |
reset() 将缓冲区的位置重置为标记位置。 |
long |
skip(long n) 从此输入流中跳过 n 个输入字节。 |
从类 java.io.InputStream 继承的方法 |
---|
read |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
buf
protected byte[] buf
-
由该流的创建者提供的字节数组。元素
buf[0]
到buf[count-1]
是只能从流中读取的字节;元素buf[pos]
是要读取的下一个字节。
pos
protected int pos
-
要从输入流缓冲区中读取的下一个字符的索引。此值应该始终是非负数,并且不应大于
count
值。从输入流缓冲区中读取的下一个字节是buf[pos]
。
mark
protected int mark
-
流中当前的标记位置。构造时默认将 ByteArrayInputStream 对象标记在位置零处。通过
mark()
方法可将其标记在缓冲区内的另一个位置处。通过reset()
方法将当前缓冲区位置设置为此点。如果尚未设置标记,则标记值是传递给构造方法的偏移量(如果未提供偏移量,则标记值为 0)。
- 从以下版本开始:
- JDK1.1
count
protected int count
-
比输入流缓冲区中最后一个有效字符的索引大一的索引。此值应该始终是非负数,并且不应大于
buf
的长度。它比buf
中最后一个可从输入流缓冲区中读取的字节位置大一。
构造方法详细信息 |
---|
ByteArrayInputStream
public ByteArrayInputStream(byte[] buf)
-
创建一个
ByteArrayInputStream
,使用buf
作为其缓冲区数组。该缓冲区数组不是复制得到的。pos
的初始值是0
,count
的初始值是buf
的长度。- 参数:
-
buf
- 输入缓冲区。
ByteArrayInputStream
public ByteArrayInputStream(byte[] buf, int offset, int length)
-
创建
ByteArrayInputStream
,使用buf
作为其缓冲区数组。pos
的初始值是offset
,count
的初始值是offset+length
和buf.length
中的最小值。该缓冲区数组不是复制得到的。将该缓冲区的标记设置为指定的偏移量。- 参数:
-
buf
- 输入缓冲区。 -
offset
- 缓冲区中要读取的第一个字节的偏移量。 -
length
- 从缓冲区中读取的最大字节数。
方法详细信息 |
---|
read
public int read()
-
从此输入流中读取下一个数据字节。返回一个
0
到255
范围内的int
字节值。如果因为到达流末尾而没有可用的字节,则返回值-1
。此
read
方法不会阻塞。 -
- 指定者:
-
类
InputStream
中的read
-
- 返回:
-
下一个数据字节,如果到达流末尾,则返回
-1
。
read
public int read(byte[] b, int off, int len)
-
将最多
len
个数据字节从此输入流读入字节数组。如果pos
等于count
,则返回-1
指示文件末尾。否则,读取的字节数k
等于len
和count-pos
的较小者。如果k
是正数,则以System.arraycopy
执行的方式将buf[pos]
到buf[pos+k-1]
的字节复制到b[off]
到b[off+k-1]
中。将值k
与pos
相加并返回k
。此
read
方法不会阻塞。 -
- 覆盖:
-
类
InputStream
中的read
-
- 参数:
-
b
- 存储读入数据的缓冲区。 -
off
- 数据的起始偏移量。 -
len
- 读取的最大字节数。 - 返回:
-
读入缓冲区的总字节数,如果由于已到达流末尾而不再有数据,则返回
-1
。 - 另请参见:
-
InputStream.read()
skip
public long skip(long n)
-
从此输入流中跳过
n
个输入字节。如果已到达输入流末尾,则可能会跳过较少的字节。实际跳过的字节数k
等于n
和count-pos
中的较小者。将值k
与pos
相加并返回k
。 -
- 覆盖:
-
类
InputStream
中的skip
-
- 参数:
-
n
- 要跳过的字节数。 - 返回:
- 跳过的实际字节数。