欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

将a.txt、b.txt、c.txt中的内容合并成文档d.txt

程序员文章站 2022-07-09 22:43:03
...
package pack;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Vector;
/*
SequenceInputStream(序列流)
需求:把a.txt与b.txt 文件的内容合并。
 */
public class Demo1 {
    public static void main(String[] args) throws IOException {
        merge3();
    }
    //把三个文件合并成一个文件
    public static void merge3() throws IOException{
        //找到目标文件
        File file1 = new File("E:\\a.txt");
        File file2 = new File("E:\\b.txt");
        File file3 = new File("E:\\c.txt");
        File file4 = new File("E:\\d.txt");
        //建立对应 的输入输出流对象
        FileOutputStream fileOutputStream = new FileOutputStream(file4);
        FileInputStream fileInputStream1 = new FileInputStream(file1);
        FileInputStream fileInputStream2 = new FileInputStream(file2);
        FileInputStream fileInputStream3 = new FileInputStream(file3);
        //创建序列流对象
        Vector<FileInputStream> vector = new Vector<FileInputStream>();
        vector.add(fileInputStream1);
        vector.add(fileInputStream2);
        vector.add(fileInputStream3);
        Enumeration<FileInputStream> e = vector.elements();
        SequenceInputStream sequenceInputStream = new SequenceInputStream(e);
        //读取文件数据
        byte[] buf = new byte[1024];
        int length = 0;
        while((length = sequenceInputStream.read(buf))!=-1){
            fileOutputStream.write(buf,0,length);
        }
        //关闭资源
        sequenceInputStream.close();
        fileOutputStream.close();
    }
    //	使用SequenceInputStream合并文件。
    public static void merge2() throws IOException{
        //找到目标文件
        File inFile1 = new File("E:\\a.txt");
        File inFile2 = new File("E:\\b.txt");
        File outFile = new File("E:\\c.txt");
        //建立数据的输入输出通道
        FileOutputStream fileOutputStream = new FileOutputStream(outFile);
        FileInputStream fileInputStream1 = new FileInputStream(inFile1);
        FileInputStream fileInputStream2 = new FileInputStream(inFile2);
        //建立序列流对象
        SequenceInputStream inputStream = new SequenceInputStream(fileInputStream1,fileInputStream2);
        byte[] buf = new byte[1024];
        int length = 0 ;
        while((length = inputStream.read(buf))!=-1){
            fileOutputStream.write(buf,0,length);
        }
        //关闭资源
        inputStream.close();
        fileOutputStream.close();
    }
    //需求:把a.txt与b.txt 文件的内容合并。
    public static void merge1() throws IOException{
        //找到目标文件
        File inFile1 = new File("E:\\a.txt");
        File inFile2 = new File("E:\\b.txt");
        File outFile = new File("E:\\c.txt");
        //建立数据的输入输出通道
        FileOutputStream fileOutputStream = new FileOutputStream(outFile);
        FileInputStream fileInputStream1 = new FileInputStream(inFile1);
        FileInputStream fileInputStream2 = new FileInputStream(inFile2);
        //把输入流存储到集合中,然后再从集合中读取
        ArrayList<FileInputStream> list = new ArrayList<FileInputStream>();
        list.add(fileInputStream1);
        list.add(fileInputStream2);
        //准备一个缓冲数组
        byte[] buf = new byte[1024];
        int length = 0 ;
        for(int i = 0 ; i< list.size() ; i++){
            FileInputStream fileInputStream = list.get(i);
            while((length = fileInputStream.read(buf))!=-1){
                fileOutputStream.write(buf,0,length);
            }
            //关闭资源
            fileInputStream.close();
        }
        fileOutputStream.close();
    }
}

 将a.txt、b.txt、c.txt中的内容合并成文档d.txt

将a.txt、b.txt、c.txt中的内容合并成文档d.txt 

打开a、b、c、d三个记事本,可以发现abc中的内容合并成d中的内容。

相关标签: JAVA学习