美文网首页
java——文件合并

java——文件合并

作者: 这颗螺丝钉姓赵 | 来源:发表于2017-03-31 19:01 被阅读0次

文件合并的原理和使用SequenceInputStream,实现文件碎片的合并

package com.zhaoqian.transstream;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;

public class Demo7 {

    public static void main(String[] args) throws Exception {
        //文件合并
//      File file = new File("F:"+File.separator+"PartFiles"+File.separator+"my.properties");
//      FileInputStream fsinfo = new FileInputStream(file);
        
        
//      MergerFile_1();
        MergerFile_2();
    }

    public static void MergerFile_2() throws Exception {
        File path = new File("F:"+File.separator+"PartFiles");
        
        // 创建集合
        List<FileInputStream> list = new ArrayList<FileInputStream>();
        
        for (int i = 1; i < 7; i++) {
            // 保存所有的输入流
            list.add(new FileInputStream(new File(path,i+".part")));
        }
        
        // 通过流工具类,获取一个枚举对象
        Enumeration<FileInputStream> en = Collections.enumeration(list);
        
        // 源
        SequenceInputStream sis = new SequenceInputStream(en);
        
        // 写入目的文件
        FileOutputStream fos = new FileOutputStream(new File(path,"1.mp3"));
        
        byte[] by = new byte[1024];
        int len = 0;
        while((len = sis.read(by))!=-1){
            fos.write(by, 0, len);
        }
        
        fos.close();
        sis.close();
        
    }

    public static void MergerFile_1() throws Exception {
        List<FileInputStream> list = new ArrayList<FileInputStream>();
        
        // 获取读取流对象
        for (int i = 1; i < 7; i++) {
            list.add(new FileInputStream("F:"+File.separator+"PartFiles"+File.separator+i+".part"));
        }
        
        FileOutputStream fos = new FileOutputStream(new File("F:"+File.separator+"PartFiles"+File.separator+"0.mp3"));
        
        byte[] buf = new byte[1024*1024];
        
        // 遍历集合,获取流对象
        for (FileInputStream fis : list) {
            int len = 0;
            while((len = fis.read(buf)) != -1){
                fos.write(buf, 0, len);
            }
            fis.close();
        }
        
        fos.close();
        
    }

}

相关文章

  • java——文件合并

    文件合并的原理和使用SequenceInputStream,实现文件碎片的合并

  • Java IO流(合并流和切割文件)

    合并流 切割文件 合并文件

  • 扣丁学堂Java在线教程——Java实现文件分割和文件合并实例

    文件切割和文件合并这个问题困扰了不少的Java开发工程师们,不论是刚刚参加Java培训学习的小伙伴,还是已经进入职...

  • IO流之合并流

    SequenceInputStream合并流 可将多个读取流合并,通常用于大文件切割后的合并; 文件的分割 文件的合并

  • Python txt文件合并

    Python txt文件合并,可适用合并所有文本类文件 把python脚本放在同文件夹下生成合成.log合并文件 ...

  • 制作framework

    1、创建iOSPaletteSDK文件夹包含的文件如下 2、合并文件 3、合并失败 4、方案二合并: 5、出现的问...

  • 文件操作

    一、文件操作-读 二、文件操作-写 三、复制文件 四、合并文件 合并文件-结果 五、readline按行读取文件、...

  • 多个PDF文件怎么合并

    多个PDF文件怎么合并,在工作中大家可能都遇到过将PDF文件合并的问题,大家也都知道PDF文件不同于别的文件,合并...

  • 一些tips(可能会持续更新)

    一:合并文件 目的是:合并两个文件解决方法:用merge合并两个文件,通过相同的列名Gene_Symbol 生成的...

  • Mac合并pdf文件

    需要工具 方法点击 【文件】 -【合并文件】就可以了 就这么简单!上百个文件轻松合并!

网友评论

      本文标题:java——文件合并

      本文链接:https://www.haomeiwen.com/subject/blwvottx.html