从包含的输入流中将最多 len 个字节读入一个 byte 数组中。尽量读取 len 个字节,但读取的字节数可能少于 len 个,也可能为零。以整数形式返回实际读取的字节数。
在输入数据可用、检测到文件末尾或抛出异常之前,此方法将阻塞。
如果 len 为零,则不读取任何字节并返回 0;否则,尝试读取至少一个字节。如果因为流位于文件未尾而没有字节可用,则返回值 -1;否则,至少读取一个字节并将其存储到 b 中。
将读取的第一个字节存储到元素 b[off] 中,将下一个字节存储到 b[off+1] 中,依此类推。读取的字节数至多等于 len。设 k 为实际读取的字节数;这些字节将存储在 b[off] 到 b[off+k-1] 的元素中,b[off+k] 到 b[off+len-1] 的元素不受影响。
在所有情况下,b[0] 到 b[off] 的元素和 b[off+len] 到 b[b.length-1] 的元素都不受影响。
- 覆盖:
- 类
filterinputstream 中的 read
- 参数:
b - 存储读取数据的缓冲区。off - 目标数组 b 中的起始偏移量len - 读取的最大字节数。
- 返回:
- 读入缓冲区的字节总数;如果因为已经到达流末尾而没有更多的数据,则返回
-1。
- 抛出:
nullpointerexception - 如果 b 为 null。
indexoutofboundsexception - 如果 off 为负,len 为负,或者 len 大于 b.length - off
ioexception - 如果不是因为流位于文件末尾而无法读取第一个字节;该流已关闭并且底层输入流在关闭后不支持读取操作;发生其他 i/o 错误。- 另请参见:
filterinputstream.in,
inputstream.read(byte[], int, int)