SequenceInputStream合并文件

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.Vector;

/**
 * 序列流合并文件
 * @author Administrator
 *
 */
public class SequenceInputStreamTest {

	public static void main(String[] args) throws IOException {
		//思路
		//1.首先定义一个vector用于打包输入流
		//那么这里为什么要用vector呢?
		//因为Vector类的elements()方法的返回值刚好与SequenceInputStream的构造器的参数
		//一致都是Enumeration类型
		Vector<FileInputStream> vector = new Vector<FileInputStream>();
		//2.定义被打包的文件,这些文件必须存在,new File 不负责建新文件
		File fileA = new File("a.txt");
		File fileB = new File("b.txt");
		File fileC = new File("c.txt");
		//3.将文件打包
		vector.add(new FileInputStream(fileA));
		vector.add(new FileInputStream(fileB));
		vector.add(new FileInputStream(fileC));
		//4.用序列流进行合并
		SequenceInputStream sts = new SequenceInputStream(vector.elements());
		//5.将序列流输出到一个文本上
		File fileD = new File("d.txt");
		FileOutputStream out = new FileOutputStream(fileD);
		//自定义缓冲区
		byte[] bytes = new byte[1024];
		int count = 0;
		while((count = sts.read(bytes)) != -1){
			out.write(bytes, 0, count);
		}
		//一定要记得关闭流
		sts.close();
		out.close();
	}

}

  

posted @ 2014-03-12 12:25  lxricecream  阅读(222)  评论(0)    收藏  举报