合并流读写多个文件:
- package com.kxg_01;
- 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的内容写入到copy.txt
- */
- public class SequenceDemo2 {
- public static void main(String[] args) throws IOException {
- // SequenceInputStream(Enumeration<? extends InputStream>e)
- // 通过此构造方法可以读写多个文件,可以看出需要Enumeration类型的参数
- // Enumeration是Vector中elements()方法的返回值类型
-
- // 创建Vector集合
- Vector<InputStream> v = new Vector<InputStream>();
-
- // 封装数据源
- InputStream is1 = new FileInputStream("a.txt");
- InputStream is2 = new FileInputStream("b.txt");
- InputStream is3 = new FileInputStream("c.txt");
-
- // 添加到集合中
- v.add(is1);
- v.add(is2);
- v.add(is3);
-
- // 由集合方法elements()得到Enumeration类型数据
- Enumeration<InputStream> e = v.elements();
-
- // 创建合并流对象
- SequenceInputStream sis = new SequenceInputStream(e);
-
- // 封装目的地
- BufferedOutputStream bos = new BufferedOutputStream(
- new FileOutputStream("copy.txt"));
- int i = 0;
- while ((i = sis.read()) != -1) {
- bos.write(i);
- }
- sis.close();
- bos.close();
- }
- }
复制代码
|