• SVN增量类


    package com.dangjian.controller;

    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;

    public class FreePatchUtil {
    public static String patchFile="F:/patch.txt";//生成的补丁文件,由eclipse svn plugin生成

    public static String projectPath="D:/yunjike_workSpace";//项目所在文件夹路径(生成与项目匹配的目录)

    public static String webContent="WebContent";//web应用文件夹名

    public static String desPath="F:/zengliangbao";//补丁文件包存放路径 (SVN创建补丁的时候选择的位置)
    //public static String version="20140711";//补丁版本

    /**
    * @param args
    * @throws Exception
    */
    public static void main(String[] args) throws Exception {
    Map<String,List<String>> map = getPatchFileListMap();
    Set<String> keySet = map.keySet();
    for (String key : keySet) {
    List<String> fileList = map.get(key);
    copyFiles(fileList,key);
    }
    }

    public static Map<String,List<String>> getPatchFileListMap() throws Exception{
    //List<String> fileList=new ArrayList<String>();
    FileInputStream f = new FileInputStream(patchFile);
    BufferedReader dr=new BufferedReader(new InputStreamReader(f,"utf-8"));
    String line;
    Map<String,List<String>> map = new HashMap<String,List<String>>();
    String webName = "";
    while((line=dr.readLine())!=null){
    if(line.indexOf("#P")!=-1){
    line=line.replaceAll(" ","");
    line=line.substring(line.indexOf("#P")+2,line.length());
    webName = line;
    }
    if(line.indexOf("Index:")!=-1){
    line=line.replaceAll(" ","");
    line=line.substring(line.indexOf(":")+1,line.length());

    List<String> fileList = map.get(webName);
    if(fileList==null){
    fileList = new ArrayList<String>();
    }
    fileList.add(line);
    map.put(webName, fileList);
    }
    }
    return map;
    }

    public static void copyFiles(List<String> list, String webName){
    for(String fileName:list){
    String fullFileName=projectPath+"/"+webName+"/"+fileName;//将要复制的文件全路径
    String fullDesFileNameStr=desPath+"/"+webName+"/"+fileName;
    String desFilePathStr=fullDesFileNameStr.substring(0,fullDesFileNameStr.lastIndexOf("/"));
    File desFilePath=new File(desFilePathStr);
    if(!desFilePath.exists()){
    desFilePath.mkdirs();
    }
    copyFile(fullFileName, fullDesFileNameStr);
    System.out.println(fullDesFileNameStr);
    }

    }

    private static void copyFile(String sourceFileNameStr, String desFileNameStr) {
    File srcFile=new File(sourceFileNameStr);
    File desFile=new File(desFileNameStr);
    try {
    copyFile(srcFile, desFile);
    } catch (IOException e) {
    e.printStackTrace();
    }
    }




    public static void copyFile(File sourceFile, File targetFile) throws IOException {
    BufferedInputStream inBuff = null;
    BufferedOutputStream outBuff = null;
    try {
    // 新建文件输入流并对它进行缓冲
    inBuff = new BufferedInputStream(new FileInputStream(sourceFile));

    // 新建文件输出流并对它进行缓冲
    outBuff = new BufferedOutputStream(new FileOutputStream(targetFile));

    // 缓冲数组
    byte[] b = new byte[1024 * 5];
    int len;
    while ((len = inBuff.read(b)) != -1) {
    outBuff.write(b, 0, len);
    }
    // 刷新此缓冲的输出流
    outBuff.flush();
    } finally {
    // 关闭流
    if (inBuff != null)
    inBuff.close();
    if (outBuff != null)
    outBuff.close();
    }
    }
    }
  • 相关阅读:
    Tensorflow实战(二):Discuz验证码识别
    文竹越长越乱?教你7种修剪方法可保持文竹株形优美,矮壮浓密
    拼应需求分析
    软工实践结对第二次作业
    软工团队第一次作业--团队展示
    学习命令行传参
    软工实践第三次作业-原型设计
    软工实践第二次作业2.0
    软工实践第二次作业
    学习c++ofstream和ifstream
  • 原文地址:https://www.cnblogs.com/woshuyuqiang/p/9275340.html
Copyright © 2020-2023  润新知