/*
SequenceInputStream的练习02 -- 合并多个输入流。
使用构造方法:
public SequenceInputStream(Enumeration<? extends InputStream> e)
注意 : 要使用泛型,不然编译报错。
Note: xxxxxxx.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
*/
import java.io.IOException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.SequenceInputStream;
import java.util.Vector;
import java.util.Enumeration;
class SequenceInputStreamDemo02 {
public static void main(String[] args) {
FileInputStream fis1=null;
FileInputStream fis2=null;
FileInputStream fis3=null;
SequenceInputStream sis=null;
FileOutputStream fos=null;
Vector<FileInputStream> vector=new Vector<FileInputStream>();
try{
//创建三个输入流
fis1=new FileInputStream("1.txt");
fis2=new FileInputStream("2.txt");
fis3=new FileInputStream("3.txt");
//添加输入流对象
vector.addElement(fis1);
vector.addElement(fis2);
vector.addElement(fis3);
//获取Vector中对象
Enumeration<FileInputStream> e=vector.elements();
//将Enumeration中的流合并
sis=new SequenceInputStream(e);
fos=new FileOutputStream("new.txt");
int len=0;
byte[] bytes=new byte[1024];
while((len=sis.read(bytes))!=-1){
fos.write(bytes,0,len);
fos.write("\r\n".getBytes());
}
}catch(IOException e){
e.printStackTrace();
}finally{
// 关闭流
try{
if (fis1!=null){
fis1.close();
}
}catch(IOException e){
e.printStackTrace();
}
try{
if (fis2!=null){
fis2.close();
}
}catch(IOException e){
e.printStackTrace();
}
try{
if (fis3!=null){
fis3.close();
}
}catch(IOException e){
e.printStackTrace();
}
try{
if (sis!=null){
sis.close();
}
}catch(IOException e){
e.printStackTrace();
}
try{
if (fos!=null){
fos.close();
}
}catch(IOException e){
e.printStackTrace();
}
}
}
}
/*
1.txt文件内容:
迎接光辉岁月!
*/
/*
2.txt文件内容:
梦想有日达成,找到心里梦想的世界。
*/
/*
3.txt文件内容:
天空海阔你与我,可会变。
*/
/*
生成的new.txt文件内容:
迎接光辉岁月!
梦想有日达成,找到心里梦想的世界。
天空海阔你与我,可会变。
*/
|
|