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();
}
}
}
原文地址:https://www.cnblogs.com/woshuyuqiang/p/9275340.html