Java教程

Java SequenceInputStream

Java SequenceInputStream是用于从多个流中读取数据。它顺序地(一个接一个地)读取数据。

Java SequenceInputStream类声明

让我们看看Java.io.SequenceInputStream类的声明:
public class SequenceInputStream extends InputStream

SequenceInputStream类的构造方法

构造函数 说明
SequenceInputStream(InputStream s1,InputStream s2) 通过依次读取两个输入流的数据(先是s1然后是s2)来创建新的输入流。
SequenceInputStream(Enumeration e) 通过读取类型为InputStream的枚举的数据来创建新的输入流。

SequenceInputStream类的方法

方法 说明
int read() 它用于从输入流中读取下一个数据字节。
int read(byte [] ary,int off,int len) 它用于从输入流中读取len个字节的数据到array个字节中。
int available() 它用于返回可从输入流读取的最大字节数。
void close() 它用于关闭输入流。

Java SequenceInputStream示例

在此示例中,我们将打印两个文件testin.txt和testout.txt的数据。
package com.lidihuo;
import java.io.*;
class InputStreamExample {
    public static void main(String args[])throws Exception{
        FileInputStream input1=new FileInputStream("D:\\testin.txt");
        FileInputStream input2=new FileInputStream("D:\\testout.txt");
        SequenceInputStream inst=new SequenceInputStream(input1, input2);
        int j;
        while((j=inst.read())!=-1){
            System.out.print((char)j);
        }
        inst.close();
        input1.close();
        input2.close();
    }
}
在这里,我们假设您有两个文件: testin.txt和testout.txt,它们具有以下信息:
testin.txt:
Welcome to Java IO Programming.
testout.txt:
It is the example of Java SequenceInputStream class.
执行程序后,您将获得以下输出:
输出:
Welcome to Java IO Programming. It is the example of Java SequenceInputStream class.

从两个文件读取数据并将其写入另一个文件的示例

在此示例中,我们正在写入两个文件的数据 testin1.txt testin2.txt 插入另一个名为 testout.txt的文件。
package com.lidihuo;
import java.io.*;
class Input1{
    public static void main(String args[])throws Exception{
        FileInputStream fin1=new FileInputStream("D:\\testin1.txt");
        FileInputStream fin2=new FileInputStream("D:\\testin2.txt");
        FileOutputStream fout=new FileOutputStream("D:\\testout.txt");
        SequenceInputStream sis=new SequenceInputStream(fin1,fin2);
        int i;
        while((i=sis.read())!=-1) {
            fout.write(i);
        }
        sis.close();
        fout.close();
        fin1.close();
        fin2.close();
        System.out.println("Success..");
    }
}
输出:
Succeess...
testout.txt:
Welcome to Java IO Programming. It is the example of Java SequenceInputStream class.

使用枚举读取数据的SequenceInputStream示例

如果需要从两个以上的文件中读取数据,则需要使用枚举。枚举对象可以通过调用Vector类的elements()方法获得。让我们看一个简单的示例,其中我们从4个文件中读取数据: a.txt,b.txt,c.txt和d.txt。
package com.lidihuo;
import java.io.*;
import java.util.*;
class Input2{
    public static void main(String args[])throws IOException{
        //creating the FileInputStream objects for all the files FileInputStream fin=new FileInputStream("D:\\a.txt");
        FileInputStream fin2=new FileInputStream("D:\\b.txt");
        FileInputStream fin3=new FileInputStream("D:\\c.txt");
        FileInputStream fin4=new FileInputStream("D:\\d.txt");
        //creating Vector object to all the stream Vector v=new Vector();
        v.add(fin);
        v.add(fin2);
        v.add(fin3);
        v.add(fin4);
        //creating enumeration object by calling the elements method Enumeration e=v.elements();
        //passing the enumeration object in the constructor SequenceInputStream bin=new SequenceInputStream(e);
        int i=0;
        while((i=bin.read())!=-1){
            System.out.print((char)i);
        }
        bin.close();
        fin.close();
        fin2.close();
    }
}
a.txt,b.txt,c.txt和d.txt具有以下信息:
a.txt:
Welcome
b.txt:
to
c.txt:
java
d.txt:
programming
输出:
Welcometojavaprogramming
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4