- java.lang.Object
-
- java.io.InputStream
-
- java.io.SequenceInputStream
-
- All Implemented Interfaces:
-
Closeable,AutoCloseable
public class SequenceInputStream extends InputStream
ASequenceInputStream表示其他输入流的逻辑级联。 它从一个有序的输入流集合开始,从第一个读取到文件的结尾,然后从第二个文件读取,依此类推,直到最后一个输入流达到文件的结尾。- 从以下版本开始:
- 1.0
-
-
构造方法摘要
构造方法 Constructor 描述 SequenceInputStream(InputStream s1, InputStream s2)通过记住两个参数来初始化一个新创建的SequenceInputStream,这两个参数将按顺序读取,第一个是s1,然后是s2,以提供从该SequenceInputStream读取的字节。SequenceInputStream(Enumeration<? extends InputStream> e)初始化新创建SequenceInputStream通过记住参数,它必须是一个Enumeration产生对象,它们的运行时类型是InputStream。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 intavailable()返回当前底层输入流可以读取(或跳过)的字节数,而不会被下一次调用当前底层输入流的方法阻塞。voidclose()关闭此输入流并释放与流相关联的任何系统资源。intread()从该输入流读取下一个数据字节。intread(byte[] b, int off, int len)从该输入流读取最多len个字节的数据为字节数组。-
Methods inherited from class java.io.InputStream
mark, markSupported, read, readAllBytes, readNBytes, reset, skip, transferTo
-
-
-
-
构造方法详细信息
-
SequenceInputStream
public SequenceInputStream(Enumeration<? extends InputStream> e)
通过记住该参数来初始化新创建的SequenceInputStream,该参数必须是Enumeration,其生成运行时类型为InputStream。 由枚举产生的输入流将按顺序读取,以提供要从此SequenceInputStream读取的字节。 从枚举的每个输入流耗尽后,通过调用其close方法关闭。- 参数
-
e- 输入流的枚举。 - 另请参见:
-
Enumeration
-
SequenceInputStream
public SequenceInputStream(InputStream s1, InputStream s2)
通过记住两个参数来初始化新创建的SequenceInputStream,这两个参数将按顺序读取,首先是s1,然后是s2,以提供要从此SequenceInputStream读取的字节。- 参数
-
s1- 要读取的第一个输入流。 -
s2- 要读取的第二个输入流。
-
-
方法详细信息
-
available
public int available() throws IOException返回当前底层输入流可以读取(或跳过)的字节数,而不会被下一次调用当前底层输入流的方法阻塞。 下一个调用可能是同一个线程或另一个线程。 这个多个字节的单个读取或跳过将不会被阻塞,但可以读取或跳过较少的字节。该方法简单地调用当前底层输入流的
available并返回结果。- 重写:
-
available在InputStream - 结果
-
从当前底层输入流中可以读取(或跳过)的字节数,不阻塞的
0如果该输入流已通过调用其close()方法关闭, 则为0 - 异常
-
IOException- 如果发生I / O错误。 - 从以下版本开始:
- 1.1
-
read
public int read() throws IOException从该输入流读取下一个数据字节。 该字节作为int返回0到255。 如果没有字节可用,因为流已经到达,则返回值为-1。 该方法阻塞直到输入数据可用,检测到流的结尾,或抛出异常。此方法尝试从当前子流中读取一个字符。 如果它到达流的末尾,它调用当前子流的
close方法,并从下一个子流开始读取。- Specified by:
-
read在InputStream - 结果
-
数据的下一个字节,如果达到流的末尾,
-1。 - 异常
-
IOException- 如果发生I / O错误。
-
read
public int read(byte[] b, int off, int len) throws IOException从该输入流读取最多len个字节的数据为字节数组。 如果len不为零,则该方法将阻塞,直到输入的至少1个字节可用; 否则,不会读取字节,并返回0。该
read的方法SequenceInputStream试图从当前子流读取数据。 如果由于子流已达到流的末尾而无法读取任何字符,则会调用当前子流的close方法,并从下一个子流开始读取。- 重写:
-
read在InputStream - 参数
-
b- 读取数据的缓冲区。 -
off- 写入数据的数组b中的起始偏移量。 -
len- 读取的最大字节数。 - 结果
- int读取的字节数。
- 异常
-
NullPointerException- 如果b是null。 -
IndexOutOfBoundsException- 如果off为负数,len为负数,或len大于b.length - off -
IOException- 如果发生I / O错误。 - 另请参见:
-
InputStream.read()
-
close
public void close() throws IOException关闭此输入流并释放与流相关联的任何系统资源。 关闭的SequenceInputStream无法执行输入操作,无法重新打开。如果此流是从枚举创建的,则所有剩余元素都将从枚举中请求,并在
close方法返回之前关闭。- Specified by:
-
close在接口AutoCloseable - Specified by:
-
close在接口Closeable - 重写:
-
close在InputStream - 异常
-
IOException- 如果发生I / O错误。
-
-