JavaTM Platform
Standard Ed. 6

java.io
类 SequenceInputStream

java.lang.Object
  继承者 java.io.InputStream
      继承者 java.io.SequenceInputStream
所有已实现的接口:
Closeable

public class SequenceInputStream
extends InputStream

SequenceInputStream 表示其他输入流的逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。

从以下版本开始:
JDK1.0

构造方法摘要
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
 

构造方法详细信息

SequenceInputStream

public SequenceInputStream(Enumeration<? extends InputStream> e)
通过记住参数来初始化新创建的 SequenceInputStream,该参数必须是生成运行时类型为 InputStream 对象的 Enumeration 型参数。将按顺序读取由该枚举生成的输入流,以提供从此 SequenceInputStream 读取的字节。在用尽枚举中的每个输入流之后,将通过调用该流的 close 方法将其关闭。

参数:
e - 输入流的一个枚举。
另请参见:
Enumeration

SequenceInputStream

public SequenceInputStream(InputStream s1,
                           InputStream s2)
通过记住这两个参数来初始化新创建的 SequenceInputStream(将按顺序读取这两个参数,先读取 s1,然后读取 s2),以提供从此 SequenceInputStream 读取的字节。

参数:
s1 - 要读取的第一个输入流。
s2 - 要读取的第二个输入流。
方法详细信息

available

public int available()
              throws IOException
返回不受阻塞地从当前底层输入流读取(或跳过)的字节数的估计值,方法是通过下一次调用当前底层输入流的方法。下一次调用可能是相同的或不同的线程。此方法的单个读取或跳过操作可以读取或跳过许多字节而不受阻塞,但也可能读取或跳过较少的字节。

此方法仅调用当前底层输入流的 available 方法并返回结果。

覆盖:
InputStream 中的 available
返回:
不受阻塞地从当前底层输入流读取(或跳过)的字节数的估计值,如果此输入流已通过调用其 close() 方法关闭,则返回 0
抛出:
IOException - 如果发生 I/O 错误。
从以下版本开始:
JDK1.1

read

public int read()
         throws IOException
从此输入流中读取下一个数据字节。返回 0255 范围内的 int 字节。如果因为已经到达流的末尾而没有可用的字节,则返回值 -1。在输入数据可用、检测到流的末尾或者抛出异常之前,此方法一直阻塞。

此方法尝试从当前子流读取一个字节。如果到达流的末尾,它将调用当前子流的 close 方法,并从下一个子流开始读取字节。

指定者:
InputStream 中的 read
返回:
下一个数据字节,如果到达流的末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误。

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
将最多 len 个数据字节从此输入流读入 byte 数组。如果 len 不为 0,则此方法一直阻塞,直到至少 1 个输入字节可用;否则,不读取字节并返回 0

SequenceInputStreamread 方法尝试从当前子流中读取该数据。如果由于子流到达流的末尾而未能读取任何字符,那么它将调用当前子流的 close 方法,并从下一个子流开始读取。

覆盖:
InputStream 中的 read
参数:
b - 读入数据的缓冲区。
off - 写入数据的数组 b 中的初始偏移量。
len - 读取的最多字节数。
返回:
读取的字节数 int。
抛出:
NullPointerException - 如果 bnull
IndexOutOfBoundsException - 如果 offlen 为负,或者 len 大于 b.length - off
IOException - 如果发生 I/O 错误。
另请参见:
InputStream.read()

close

public void close()
           throws IOException
关闭此输入流并释放与此流关联的所有系统资源。关闭的 SequenceInputStream 无法执行输入操作,且无法重新打开。

如果此流是根据一个枚举创建的,则其余所有元素都是从该枚举中请求的,并在 close 方法返回之前关闭。

指定者:
接口 Closeable 中的 close
覆盖:
InputStream 中的 close
抛出:
IOException - 如果发生 I/O 错误。

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策