Java SequenceInputStream
精华
小牛编辑
179浏览
2023-03-14
1 什么是Java SequenceInputStream
Java SequenceInputStream 类用于从多个流中读取数据 。它是按顺序读取数据的(也就是逐一读取)。
2 Java SequenceInputStream的语法
public class SequenceInputStream extends InputStream
3 Java SequenceInputStream的构造方法
方法 | 描述 |
---|---|
SequenceInputStream(InputStream s1, InputStream s2) | 通过依次读取两个输入流的数据s1和s2创建新的输入流。 |
SequenceInputStream(Enumeration e) | 通过读取类型为InputStream的枚举的数据来创建新的输入流。 |
4 Java SequenceInputStream的方法
方法 | 描述 |
---|---|
int read() | 用于从输入流中读取下一个数据字节。 |
int read(byte[] ary, int off, int len) | 用于将len个字节的数据从输入流读取到字节数组中。 |
int available() | 用于返回可从输入流读取的最大字节数。 |
void close() | 用于关闭输入流。 |
5 Java SequenceInputStream的例子
在此示例中,我们将输出两个文件testin.txt和testout.txt的数据。
package cn.xnip;
/**
* 小牛知识库网: https://www.xnip.cn
*/
/**
* Java SequenceInputStream的例子
*/
import java.io.*;
class Demo {
public static void main(String args[])throws Exception{
FileInputStream input1=new FileInputStream("D:\\xnip\\testin.txt");
FileInputStream input2=new FileInputStream("D:\\xnip\\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,它们包含以下信息:
testint.txt:
testout.txt:
以上程序输出结果为:
Welcome to Java IO Programming.It is the example of Java SequenceInputStream class.
6 两个文件写入一个文件
在此示例中,我们将两个文件testin1.txt和testin2.txt的数据写入另一个名为testout.txt的文件中。
package cn.xnip;
/**
* 小牛知识库网: https://www.xnip.cn
*/
/**
* Java SequenceInputStream的例子
*/
import java.io.*;
class Demo{
public static void main(String args[])throws Exception{
FileInputStream fin1=new FileInputStream("D:\\xnip\\testin1.txt");
FileInputStream fin2=new FileInputStream("D:\\xnip\\testin2.txt");
FileOutputStream fout=new FileOutputStream("D:\\xnip\\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..");
}
}
testin1.txt:
testin2.txt:
以上程序执行后,控制台输出结果为:
Success..
testout.txt:
7 使用枚举读取4个文件数据
如果需要从两个以上的文件中读取数据,则需要使用Enumeration枚举。枚举对象可以通过调用Vector类的elements() 方法获得。让我们看一个简单的示例,其中我们从4个文件中读取数据:a.txt,b.txt,c.txt和d.txt。
package cn.xnip;
/**
* 小牛知识库网: https://www.xnip.cn
*/
/**
* Java SequenceInputStream的例子
*/
import java.io.*;
import java.util.*;
class Input2{
public static void main(String args[])throws IOException{
//为所有文件创建FileInputStream对象
FileInputStream fin=new FileInputStream("D:\\xnip\\a.txt");
FileInputStream fin2=new FileInputStream("D:\\xnip\\b.txt");
FileInputStream fin3=new FileInputStream("D:\\xnip\\c.txt");
FileInputStream fin4=new FileInputStream("D:\\xnip\\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:
Welcome
b.txt:
To
c.txt:
Yiidian
d.txt:
learn Java
以上程序输出结果为:
WelcomeToYiidianlearn Java