java.lang.Objectjava.io.InputStream
java.io.SequenceInputStream
public class SequenceInputStream
SequenceInputStream 表示其他输入流的逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。
| 构造方法摘要 | |
|---|---|
SequenceInputStream(Enumeration<? extends InputStream> e) 通过记住参数来初始化新创建的 SequenceInputStream,该参数必须是生成运行时类型为 InputStream 对象的 Enumeration 型参数。 |
|
SequenceInputStream(InputStream s1, InputStream s2) 通过记住这两个参数来初始化新创建的 SequenceInputStream(将按顺序读取这两个参数,先读取 s1,然后读取 s2),以提供从此 SequenceInputStream 读取的字节。 |
|
| 方法摘要 | |
|---|---|
int |
available() 返回不受阻塞地从当前底层输入流读取(或跳过)的字节数的估计值,方法是通过下一次调用当前底层输入流的方法。 |
void |
close() 关闭此输入流并释放与此流关联的所有系统资源。 |
int |
read() 从此输入流中读取下一个数据字节。 |
int |
read(byte[] b, int off, int len) 将最多 len 个数据字节从此输入流读入 byte 数组。 |
| 从类 java.io.InputStream 继承的方法 |
|---|
mark, markSupported, read, reset, skip |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 构造方法详细信息 |
|---|
public SequenceInputStream(Enumeration<? extends InputStream> e)
SequenceInputStream,该参数必须是生成运行时类型为
InputStream 对象的
Enumeration 型参数。将按顺序读取由该枚举生成的输入流,以提供从此
SequenceInputStream 读取的字节。在用尽枚举中的每个输入流之后,将通过调用该流的
close 方法将其关闭。
e - 输入流的一个枚举。
Enumeration
public SequenceInputStream(InputStream s1, InputStream s2)
SequenceInputStream(将按顺序读取这两个参数,先读取
s1,然后读取
s2),以提供从此
SequenceInputStream 读取的字节。
s1 - 要读取的第一个输入流。
s2 - 要读取的第二个输入流。
| 方法详细信息 |
|---|
public int available()
throws IOException
此方法仅调用当前底层输入流的 available 方法并返回结果。
InputStream 中的
available
close() 方法关闭,则返回
0
IOException - 如果发生 I/O 错误。
public int read()
throws IOException
0 到
255 范围内的
int 字节。如果因为已经到达流的末尾而没有可用的字节,则返回值
-1。在输入数据可用、检测到流的末尾或者抛出异常之前,此方法一直阻塞。
此方法尝试从当前子流读取一个字节。如果到达流的末尾,它将调用当前子流的 close 方法,并从下一个子流开始读取字节。
InputStream 中的
read
-1。
IOException - 如果发生 I/O 错误。
public int read(byte[] b,
int off,
int len)
throws IOException
len 个数据字节从此输入流读入 byte 数组。如果
len 不为 0,则此方法一直阻塞,直到至少 1 个输入字节可用;否则,不读取字节并返回
0。
SequenceInputStream 的 read 方法尝试从当前子流中读取该数据。如果由于子流到达流的末尾而未能读取任何字符,那么它将调用当前子流的 close 方法,并从下一个子流开始读取。
InputStream 中的
read
b - 读入数据的缓冲区。
off - 写入数据的数组
b 中的初始偏移量。
len - 读取的最多字节数。
NullPointerException - 如果
b 为
null。
IndexOutOfBoundsException - 如果
off 或
len 为负,或者
len 大于
b.length - off
IOException - 如果发生 I/O 错误。
InputStream.read()
public void close()
throws IOException
SequenceInputStream 无法执行输入操作,且无法重新打开。
如果此流是根据一个枚举创建的,则其余所有元素都是从该枚举中请求的,并在 close 方法返回之前关闭。
Closeable 中的
close
InputStream 中的
close
IOException - 如果发生 I/O 错误。