Java教程-Java SequenceInputStream类

Java SequenceInputStream类
Java SequenceInputStream类用于从多个流中顺序读取数据。它按顺序逐个读取数据。
Java SequenceInputStream类声明
让我们看一下Java.io.SequenceInputStream类的声明:
public class SequenceInputStream extends InputStream
SequenceInputStream类的构造方法
Constructor | Description |
---|---|
SequenceInputStream(InputStream s1, InputStream s2) | 通过按顺序读取两个输入流的数据来创建一个新的输入流,首先是 s1,然后是 s2。 |
SequenceInputStream(Enumeration e) | 通过读取类型为 InputStream 的枚举的数据来创建新的输入流。 |
SequenceInputStream类的方法
Java SequenceInputStream示例
package com.javatpoint;
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和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.javatpoint;
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示例
如果我们需要从多于两个文件中读取数据,我们需要使用枚举(Enumeration)。可以通过调用Vector类的elements()方法获取Enumeration对象。让我们看一个简单的例子,从4个文件a.txt、b.txt、c.txt和d.txt中读取数据。
package com.javatpoint;
import java.io.*;
import java.util.*;
class Input2{
public static void main(String args[])throws IOException{
//为所有文件创建FileInputStream对象
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");
//为所有流创建Vector对象
Vector v=new Vector();
v.add(fin);
v.add(fin2);
v.add(fin3);
v.add(fin4);
//调用elements方法创建枚举对象
Enumeration e=v.elements();
//在构造函数中传递枚举对象
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