java 文件合并功能

这是一个Java实现的文件合并功能,通过`FileCombineFetch`类完成多个临时文件到一个目标文件的合并。程序首先根据线程数过滤临时文件,然后按照特定顺序合并所有临时文件,并在合并完成后删除临时文件。
摘要由CSDN通过智能技术生成
 在项目中在一个文件目录中存放多个临时文件合并文件功能的,提供代码以供交流,如有不同意见一起商议,希望各位大牛提出更好的意见和建议.再次表示感谢.
Java代码 复制代码  收藏代码
  1. package easyway.tbs.file.transport.core.combine;   
  2.   
  3. import java.io.BufferedOutputStream;   
  4. import java.io.File;   
  5. import java.io.FileOutputStream;   
  6. import java.io.IOException;   
  7. import java.util.ArrayList;   
  8. import java.util.Collection;   
  9. import java.util.List;   
  10.   
  11. import org.apache.commons.io.FileUtils;   
  12. import org.apache.commons.io.FilenameUtils;   
  13. import org.slf4j.Logger;   
  14. import org.slf4j.LoggerFactory;   
  15.   
  16.   
  17.   
  18. /**  
  19.  * 文件合并器  
  20.  *   1.首先将根据消息中线程数,过滤目录文件数目等于线程数表示文件下载完毕。  
  21.  *   2.开始合并临时文件为一个文件。  
  22.  *     
  23.  * @author longgangbai  
  24.  *  
  25.  */  
  26. public class FileCombineFetch extends Thread {   
  27.      private static final transient Logger LOG = LoggerFactory.getLogger(FileCombineFetch.class);   
  28.            
  29.     /**  
  30.      * 目标文件的名称  
  31.      */  
  32.     private File targetFile;   
  33.     /**  
  34.      * 临时文件的目录  
  35.      */  
  36.     private Collection<File> tmpFiles;   
  37.     /**  
  38.      * 将需要合并的文件合并为一个文件  
  39.      *   
  40.      * @param targetFile     
  41.      *      需要生成的目标文件   
  42.      * @param tmpFiles       
  43.      *      临时文件的集合  
  44.      */  
  45.     public FileCombineFetch(String targetFile,Collection<File> tmpFiles){   
  46.         this.targetFile=new File(targetFile);   
  47.         this.tmpFiles=tmpFiles;   
  48.     }   
  49.        
  50.     /**  
  51.      * 执行合并文件的线程方法  
  52.      *   
  53.      */  
  54.     public void run(){   
  55.         BufferedOutputStream outputStream=null;   
  56.         try {   
  57.             //创建读取文件流的目录   
  58.             outputStream = new BufferedOutputStream(new FileOutputStream(targetFile));   
  59.             List<File> fileList=new ArrayList<File>();   
  60.             fileList.addAll(fileList);   
  61. //          Collections.sort(fileList,new Comparator<File>(){   
  62. //              public int compare(File file0, File file1) {   
  63. //                     
  64. //                  String fileIndex0=FilenameUtils.getBaseName(file0.getName()).split("_")[2];   
  65. //                  String fileIndex1=FilenameUtils.getBaseName(file1.getName()).split("_")[2];   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值