您的位置:首页 > 其它

IO流_合并流读取多个文件的内容复制到一个文件中

2017-03-02 00:14 295 查看
package cn.itcast_06;

import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector;

/*
* 以前的操作:
* 		a.txt --> b.txt
* 		c.txt --> d.txt
* 		e.txt --> f.txt
* 现在想要的:
* 		a.txt+b.txt+c.txt --> d.txt
*/
public class SequenceInputStreamDemo2 {
public static void main(String[] args) throws IOException {
// 需求:把下面三个文件复制到Copy.java中
// ByteArrayStreamDemo.java,CopyFileDemo.java,DataStreamDemo.java

// public SequenceInputStream(Enumeration e)
// 通过简单的回顾我们知道了Enumeration是Vector中的一个方法的返回值类型。
// Enumeration<E> elements()
// 数据源
Vector<InputStream> v = new Vector<InputStream>();
InputStream s1 = new FileInputStream("ByteArrayStreamDemo.java");
InputStream s2 = new FileInputStream("CopyFileDemo.java");
InputStream s3 = new FileInputStream("DataStreamDemo.java");
v.add(s1);
v.add(s2);
v.add(s3);

Enumeration<InputStream> en = v.elements();
SequenceInputStream sis = new SequenceInputStream(en);

// 目的地
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream("Copy.java"));

// 读写数据
byte[] bys = new byte[1024];
int len = 0;
while ((len = sis.read(bys)) != -1) {
bos.write(bys, 0, len);
}

// 释放资源
bos.close();
sis.close();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: