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

来源:互联网 发布:数据签名异常 编辑:程序博客网 时间:2024/05/01 14:47
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();}}

0 0