合并分支工具类

  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 }
时间: 2024-10-05 23:46:55

合并分支工具类的相关文章

通过反射克隆对象,对象复制(克隆),对象合并工具类 升级版

先上代码,有时间再详说: package com.kaiyuan.common.util; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 通用对象co

分页、图片水印、缩略图【图片处理工具类】、php错误机制

1.分页技术[limit] 分页技术就是传入分页需要的每页的大小和当前页,对页的控制,实现分页的功能 使用分页的方式来展示相关的列表信息. [公司的分页是通过接口进行处理,因为我们只使用显示的部分,不用取库的操作,所以比较简单.使用ajax调用接口实现分页的异步显示] [做一个分页的工具类] [gd图片处理的相关] 2.缩略图 步骤: (1)在原图上采样,获取在原图上的采集区域 (2)拷贝:将文件复制一份 (3)修改:修改文件大小 (4)导出(imagejpeg)并销毁资源(destory) i

Spring 工具类 ConfigurationClassParser 分析得到配置类

https://blog.csdn.net/andy_zhang2007/article/details/78549773 Spring 工具类 ConfigurationClassParser 分析得到配置类原创安迪源文 最后发布于2017-11-16 12:19:50 阅读数 4296 收藏展开简介Spring的工具类ConfigurationClassParser用于分析@Configuration注解的配置类,产生一组ConfigurationClass对象.它的分析过程会接受一组种子配

Spring3中好用的工具类收集

1) 请求工具类 org.springframework.web.bind.ServletRequestUtils //取请求参数的整数值: public static Integer getIntParameter(ServletRequest request, String name) public static int getIntParameter(ServletRequest request, String name, int defaultVal) -->单个值 public sta

Apache Commons 工具类介绍及简单使用

Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下面是我这几年做开发过程中自己用过的工具类做简单介绍.   组件 功能介绍 BeanUtils 提供了对于JavaBean进行各种操作,克隆对象,属性等等. Betwixt XML与Java对象之间相互转换. Codec 处理常用的编码方法的工具类包 例如DES.SHA1.MD5.Base64等. Collections java集合框架操作. Compress java提供文件打包 压缩类库. C

Spring 的优秀工具类盘点第 2 部分

特殊字符转义 由于 Web 应用程序需要联合使用到多种语言,每种语言都包含一些特殊的字符,对于动态语言或标签式的语言而言,如果需要动态构造语言的内容时,一个我们经常会碰到的问题就是特殊字符转义的问题.下面是 Web 开发者最常面对需要转义的特殊字符类型: HTML 特殊字符: JavaScript 特殊字符: SQL 特殊字符: 如果不对这些特殊字符进行转义处理,则不但可能破坏文档结构,还可以引发潜在的安全问题.Spring 为 HTML 和 JavaScript 特殊字符提供了转义操作工具类,

2015第30周三Spring常用工具类

文件资源操作 文件资源的操作是应用程序中常见的功能,如当上传一个文件后将其保存在特定目录下,从指定地址加载一个配置文件等等.我们一般使用 JDK 的 I/O 处理类完成这些操作,但对于一般的应用程序来说,JDK 的这些操作类所提供的方法过于底层,直接使用它们进行文件操作不但程序编写复杂而且容易产生错误.相比于 JDK 的 File,Spring 的 Resource 接口(资源概念的描述接口)抽象层面更高且涵盖面更广,Spring 提供了许多方便易用的资源操作工具类,它们大大降低资源操作的复杂度

如何摆脱工具类

无论是进行代码review还是紧急编码调整,你总会发现:你又搞出了一个帮助类(helper class).代码运行一切正常,进度又必须跟上,发布任务一个接一个,因此那个帮助类逐渐变成了一个提供了很多静态(static)方法的“怪兽类” (monster class),在它的utils包内不受控制地增长.utils包长久以来就是一个技术争议的荒蛮之地,面向对象设计理念连半步都不敢踏入.“工具类是功 能集中,并且逻辑毫不重复(Do not repeat yourself)” 一些开发人员会这样喊道

实用篇:说说我在JavaScript项目中使用的工具类

在JavaScript的开发中,我们都会写一些工具类来帮我们简化一些业务操作的逻辑,一下就貼几个我在项目开发过程中常用的工具类.表达能力有限,各位看官还是看源码吧. 一.日期处理工具类. /** * 日期处理工具类 * @Authors: jackyWHJ * @date 2013-10-18 * */ var DateUtils = { /** * 得到日期在一年当中的周数 */ getISOYearWeek: function(date) { var commericalyear = thi