合并流

  • SequenceInputStream:表示其他输入流的逻辑串联。
  • 多个源对应一个目的;就是把多个源变成一个源。
import java.io.*;
import java.util.*;
/*
需求:现有1.txt,2.txt,3.txt三个文件;先要把三个文件合并到一个文件。
分析:
1,先将三个文件输入流对象一个接一个的存入Vector集合。
2,再用SequenceInputStream将Vector集合中的元素整合到一个流中,作为源。
3,再声明目的,定义输出流对象。
4,将输入流中的数据存到输出流中。
5,输入流和输出流。
*/
class sequenceDemo{
    public static void main(String[] args) throws IOException{
        Vector v = new Vector();
        v.add(new FileInputStream("f:\\test\\1.txt"));
        v.add(new FileInputStream("f:\\test\\2.txt"));
        v.add(new FileInputStream("f:\\test\\3.txt"));
        Enumeration en = v.elements();
        SequenceInputStream sis = new SequenceInputStream(en);
        FileOutputStream fos = new FileOutputStream("f:\\test\\4.txt");
        byte[] buf = new byte[1024];
        int len = 0;
        //因为SequenceInputStream是InputStream的子类,所以可以调用read方法。
        while((len=sis.read(buf)) != -1){
            fos.write(buf,0,len);
        }
        fos.close();
        sis.close();
    }
}

你可能感兴趣的:(合并流)