模块 java.base
 java.io

类 SequenceInputStream

java.lang.Object
java.io.InputStream
java.io.SequenceInputStream
所有已实现的接口:
Closeable , AutoCloseable

public class SequenceInputStream extends InputStream
SequenceInputStream 表示其他输入流的逻辑串联。它从有序的输入流集合开始,从第一个输入流读取直到到达文件末尾,然后从第二个输入流读取,依此类推,直到最后一个包含的输入流到达文件末尾。
自从:
1.0
  • 构造方法详细信息

    • SequenceInputStream

      public SequenceInputStream(Enumeration <? extends InputStream > e)
      通过记住参数来初始化新创建的 SequenceInputStream,该参数必须是一个 Enumeration,它生成运行时类型为 InputStream 的对象。枚举产生的输入流将按顺序读取,以提供要从此 SequenceInputStream 读取的字节。枚举中的每个输入流都用完后,通过调用其 close 方法将其关闭。
      参数:
      e - 输入流的枚举。
      参见:
    • 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
      从输入流中读取下一个字节的数据。值字节作为 int0255 范围内返回。如果因为已到达流的末尾而没有可用字节,则返回值 -1。此方法会阻塞,直到输入数据可用、检测到流结束或抛出异常为止。

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

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

      public int read(byte[] b, int off, int len) throws IOException
      从此输入流中读取最多 len 字节的数据到字节数组中。如果已到达最后包含的流的末尾,则返回 -1。否则,如果 len 不为零,该方法将阻塞,直到至少有 1 个字节的输入可用;如果 len 为零,则不读取任何字节并返回 0

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

      重写:
      read 在类 InputStream
      参数:
      b - 读取数据的缓冲区。
      off - 写入数据的数组 b 中的起始偏移量。
      len - 读取的最大字节数。
      返回:
      读入缓冲区的字节总数,如果没有更多数据,则为 -1,因为已到达最后包含的流的末尾。
      抛出:
      NullPointerException - 如果尚未到达最后包含的流的末尾且 bnull
      IndexOutOfBoundsException - 如果尚未到达最后一个包含流的末尾且 off 为负,len 为负,或 len 大于 b.length - off
      IOException - 如果发生 I/O 错误。
      参见:
    • close

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

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

      指定者:
      close 在接口 AutoCloseable
      指定者:
      close 在接口 Closeable
      重写:
      close 在类 InputStream
      抛出:
      IOException - 如果发生 I/O 错误。