分享

多文件合成一个文件工具类

 樱花梦_张艺馨 2017-03-17

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;


public class test {
  private  ArrayList<String> filelist = new ArrayList<String>();

  /**
   * 通过递归得到某一路径下所有的目录
   *
   * @param filePath
   *            文件路径
   * @return
   */
  public ArrayList<String> getFilePaths(String filePath) {
   File[] files = new File(filePath).listFiles();
   if (null == files || files.length == 0) {
    return filelist;
   }
   for (File file : files) {
    if (!file.isDirectory()) {
     filelist.add(file.getAbsolutePath());
     continue;
    }
    getFilePaths(file.getAbsolutePath());
   }
   return filelist;
  }

  /**
   * 将一个文件内容,写入另一个文件中
   * @param filePath 源文件路径 文件夹
   * @param toFilePath 目标文件路径。
   * @throws IOException  抛出IO异常
   */
  public void getFileToFile(String filePath,String toFilePath) throws IOException{
   File des = new File(toFilePath);
   if (!des.exists()) { // 判断是否存在,不存在就创建
    des.createNewFile(); // 创建文件
   }
   ArrayList<String> filePathlist =this.getFilePaths(filePath);
   if(filePathlist ==null && filePathlist.size()<=0) return; //如果文件夹下是空的,直接退出。
   
   OutputStream output = null;
   FileInputStream input = null;
   output = new FileOutputStream(des);
   for (int i = 0; i < filePathlist.size(); i++) {
    input = new FileInputStream(filePathlist.get(i));
    byte[] buffer = new byte[1024];
    while (-1 != (input.read(buffer))) {
     output.write(buffer);
    }
    String temp = "\r\n";
    output.write(temp.getBytes());//换行
   }
   if (output != null) {
    try {
     if (input != null)
      output.close();
     input.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }
 }
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多