1. 程式人生 > >合並分支工具類

合並分支工具類

trac mini ole exce 讀取文件 fileread red system subst

  1 import java.io.*;
  2 import java.util.*;
  3 
  4 /**
  5  * Created by Administrator on 2017/6/12.
  6  */
  7 public class PatchTool {
  8 
  9     //1.讀取配置文件
 10 
 11     //2.在配置文件中配置本地文件路徑前綴
 12 
 13     //3.讀取文件路徑列表
 14 
 15     //4.在輸出文件夾生成相應的文件夾結構
 16 
 17     public static final String CONFIG_PATH = "patch.properties";
18 19 public static final String KEY_WORKSPACE_PATH = "WORKSPACE_PATH"; 20 21 public static final String KEY_OUTPUT_PATH = "OUTPUT_PATH"; 22 23 public static final String FILE_LIST_NAME = "list.txt";//存放修改過的文件的全路徑列表文件 24 /** 25 * 1.讀取配置文件 26 */ 27 public static
Map<String,String> getProperties() { 28 Properties p = new Properties(); 29 Map<String,String> config = null; 30 try { 31 p.load(new BufferedInputStream(new FileInputStream(new File(CONFIG_PATH)))); 32 String workSpacePath = p.getProperty(KEY_WORKSPACE_PATH);
33 String outputPath = p.getProperty(KEY_OUTPUT_PATH); 34 config = new HashMap<>(); 35 config.put(KEY_OUTPUT_PATH,outputPath); 36 config.put(KEY_WORKSPACE_PATH,workSpacePath); 37 } catch (IOException e) { 38 e.printStackTrace(); 39 } 40 return config; 41 } 42 43 // 3.讀取文件路徑列表 44 public static Set<String> getFilePaths(){ 45 Set<String> fileSets = null; 46 try { 47 BufferedReader br = new BufferedReader(new FileReader(new File(FILE_LIST_NAME))); 48 fileSets = new HashSet<>(); 49 String tmp; 50 while((tmp = br.readLine())!= null){ 51 fileSets.add(tmp); 52 } 53 br.close(); 54 } catch (FileNotFoundException e) { 55 e.printStackTrace(); 56 } catch (IOException e) { 57 e.printStackTrace(); 58 } 59 return fileSets; 60 } 61 62 // 4.根據文件路徑生成文件夾結構 63 public static boolean createDir(Map<String,String> config,Set<String> fileSets){ 64 65 String workSpacePath = config.get(KEY_WORKSPACE_PATH); 66 String outputPath = config.get(KEY_OUTPUT_PATH); 67 68 String pathName,fileName,targetFile; 69 //遍歷文件列表 70 for(String file : fileSets){ 71 pathName = outputPath + File.separator + file.substring(0,file.lastIndexOf(File.separator) + 1); 72 fileName = workSpacePath + File.separator + file; 73 targetFile = outputPath + File.separator + file; 74 75 File fileDir = new File(pathName); 76 File f; 77 if(!fileDir.exists()){ 78 fileDir.mkdirs(); 79 f = new File(targetFile); 80 if(!f.exists()){ 81 copyFile(fileName,targetFile); 82 } 83 } 84 85 } 86 87 88 return true; 89 } 90 91 public static void copyFile(String oldPath, String newPath) { 92 try { 93 int bytesum = 0; 94 int byteread = 0; 95 File oldfile = new File(oldPath); 96 if (oldfile.exists()) { //文件存在時 97 InputStream inStream = new FileInputStream(oldPath); //讀入原文件 98 FileOutputStream fs = new FileOutputStream(newPath); 99 byte[] buffer = new byte[1444]; 100 int length; 101 while ( (byteread = inStream.read(buffer)) != -1) { 102 bytesum += byteread; //字節數 文件大小 103 System.out.println(bytesum); 104 fs.write(buffer, 0, byteread); 105 } 106 inStream.close(); 107 } 108 } 109 catch (Exception e) { 110 System.out.println("復制單個文件操作出錯"); 111 e.printStackTrace(); 112 113 } 114 115 } 116 117 public static void main(String[] args) throws IOException{ 118 119 120 /* File f = new File("a.txt"); 121 f.createNewFile();*/ 122 123 Map<String,String> config = getProperties(); 124 Set<String> fileSets = getFilePaths(); 125 126 createDir(config,fileSets); 127 128 } 129 }

合並分支工具類