java.lang.Object java.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 错误。