java如何连同目录复制一个文件 部署到服务器的clas文件的工具类

xiaoxiao2021-02-28  187

     刚来到新公司,第一次做需求发现上线是手动打版,在 apache-tomcat-7.0.40/webapps 目录里 搜索 改过的文件 ,然后复制到 项目的空 文件夹里上传到服务器,一个一个找好麻烦,最主要的是目录太深,害怕搞错。 于是 萌生用java 写一个工具类,把文件名写上,自动创建没有的文件夹,同时把文件复制过去!   

        以下是代码:

package co.wz.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class CopyFile {  public static void main(String[] args) {    //要复制的文件的名字 多个之间用 & 隔开    String finame="AcctxnBookDao.class";    //要把项目文件夹复制到的目录    String goalFile = "C:/Epath/";    //搜索复制文件的目录    File reso = new File("C:/Dpath/GZ/apache-tomcat-7.0.40/webapps/pm");        String fis[]=finame.split("&");    for(String fi:fis){    OperatorFile(reso,goalFile,fi);    }   }    private static void OperatorFile(File reso,String goalFile,String fi){   File[] listFiles = reso.listFiles();   for (File file:listFiles){    if(file.isDirectory()){ //如果是一个目录继续遍历              OperatorFile(file,goalFile,fi);                }else{       cpFile(file,goalFile,fi);     }   }   }    /**   *@param file 要复制的文件       *   **/    //复制文件  private static void cpFile(File file,String goalFile,String fi){   String file2name=file.getAbsolutePath();   String filenames []=file2name.split("\\\\");   String filename =filenames[filenames.length-1];       if(filename.equals(fi)){ //如果存在复制到工作目录    String dirname =file2name.replace("C:\\Dpath\\GZ\\apache-tomcat-7.0.40\\webapps\\",goalFile);    //创建文件目录    File fe=new File(dirname.replace(filename,""));            fe.mkdirs();    //然后将文件复制过去    FileInputStream read=null;    FileOutputStream   wire=null;    try {      read = new FileInputStream(file2name);      wire =new FileOutputStream(dirname);  //写入          byte [] data=new byte[1024];     while(read.read(data)!=-1){      //写      wire.write(data);      wire.flush();     }    } catch (IOException e) {     // TODO Auto-generated catch block     e.printStackTrace();    }finally{     if(read!=null)      try {       read.close();      } catch (IOException e) {       // TODO Auto-generated catch block       e.printStackTrace();      }finally{       if(wire!=null)        try {         wire.close();        } catch (IOException e) {         // TODO Auto-generated catch block         e.printStackTrace();        }      }    }      }  }     }

转载请注明原文地址: https://www.6miu.com/read-21997.html

最新回复(0)