Module java.base
Package java.io

Class SequenceInputStream

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

public class SequenceInputStream extends InputStream
SequenceInputStream表示其他输入流的逻辑连接。它从一个有序的输入流集合开始读取第一个流,直到达到文件末尾,然后从第二个流开始读取,依此类推,直到最后一个包含的输入流达到文件末尾。
自从:
1.0
  • Constructor Details

    • SequenceInputStream

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

      public SequenceInputStream(InputStream s1, InputStream s2)
      通过记住两个参数来初始化新创建的SequenceInputStream,这些参数将按顺序读取,首先是s1,然后是s2,以提供要从此SequenceInputStream读取的字节。
      参数:
      s1 - 要读取的第一个输入流。
      s2 - 要读取的第二个输入流。
  • Method Details

    • available

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

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

      覆盖:
      available 在类中 InputStream
      返回:
      估计可以从当前底层输入流读取(或跳过)的字节数,而不会被阻塞,或者如果通过调用其close()方法关闭了此输入流,则返回0
      抛出:
      IOException - 如果发生I/O错误。
      自从:
      1.1
    • read

      public int read() throws IOException
      从输入流中读取下一个数据字节。值字节作为int返回,范围为0255。如果没有字节可用,因为已达到流的末尾,则返回值-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错误。