Module  java.base
软件包  java.io

Class SequenceInputStream

  • All Implemented Interfaces:
    CloseableAutoCloseable


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

      • 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并返回结果。

        重写:
        availableInputStream
        结果
        从当前底层输入流中可以读取(或跳过)的字节数,不阻塞的 0如果该输入流已通过调用其 close()方法关闭, 则为0
        异常
        IOException - 如果发生I / O错误。
        从以下版本开始:
        1.1
      • read

        public int read​()
                 throws IOException
        从该输入流读取下一个数据字节。 该字节作为int返回0255 如果没有字节可用,因为流已经到达,则返回值为-1 该方法阻塞直到输入数据可用,检测到流的结尾,或抛出异常。

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

        Specified by:
        readInputStream
        结果
        数据的下一个字节,如果达到流的末尾, -1
        异常
        IOException - 如果发生I / O错误。
      • read

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

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

        重写:
        readInputStream
        参数
        b - 读取数据的缓冲区。
        off - 写入数据的数组 b中的起始偏移量。
        len - 读取的最大字节数。
        结果
        int读取的字节数。
        异常
        NullPointerException - 如果 bnull
        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
        重写:
        closeInputStream
        异常
        IOException - 如果发生I / O错误。