- java.lang.Object
-
- java.io.InputStream
-
- java.io.SequenceInputStream
-
- 实现的所有接口
-
Closeable
,AutoCloseable
public class SequenceInputStream extends InputStream
SequenceInputStream
表示其他输入流的逻辑串联。 它从一个有序的输入流集合开始,从第一个读取到文件结束,然后从第二个读取,依此类推,直到最后一个包含的输入流到达文件末尾。- 从以下版本开始:
- 1.0
-
-
构造方法摘要
构造方法 构造器 描述 SequenceInputStream(InputStream s1, InputStream s2)
通过记住两个参数来初始化新创建的SequenceInputStream
,这两个参数将按顺序读取,首先是s1
,然后是s2
,以提供要从此SequenceInputStream
读取的字节。SequenceInputStream(Enumeration<? extends InputStream> e)
通过记住参数初始化新创建的SequenceInputStream
,该参数必须是Enumeration
,它生成运行时类型为InputStream
。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 int
available()
返回当前基础输入流可以读取(或跳过)的字节数的估计值,而不会被下一次调用当前基础输入流的方法阻塞。void
close()
关闭此输入流并释放与该流关联的所有系统资源。int
read()
从此输入流中读取下一个数据字节。int
read(byte[] b, int off, int len)
从此输入流len
最多len
字节的数据读入一个字节数组。-
声明方法的类 java.io.InputStream
mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, 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()
方法 - 异常
-
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
字节的数据读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错误。
-
-