由于智障客户要求,需要将enum文件里的常量,直接放到要用的文件中。
package fileHandlingUtils;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EnumTransfConst {
public static void main(String[] args){
dealData();
}
private static void dealData(){
String path="F:\\YuwenzhiLibrary\\utils\\src\\lib\\test.txt";
String reg ="^\\/\\*.*$";
Pattern pattern=Pattern.compile(reg);
try {
FileReader reader = new FileReader(path);
BufferedReader br = new BufferedReader(reader);
String line;
StringBuilder stringBuilder = new StringBuilder();
String compareStr = "0116";
int i=1;
while ((line = br.readLine()) != null) {
Matcher matcher=pattern.matcher(line);
if(matcher.find()){
stringBuilder.append(line+"\n");
}else{
if(!line.split("_")[1].equals(compareStr)) {
stringBuilder.append("public static final String "+line.split("_")[0]+line.split("_")[1]+" = "+"\""+line.split("_")[1]+"\";\n");
stringBuilder.append(strDeal(line));
}
else if(line.split("_")[1].equals(compareStr) && i==1) {
stringBuilder.append("public static final String "+line.split("_")[0]+line.split("_")[1]+" = "+"\""+line.split("_")[1]+"\";\n");
stringBuilder.append(strDeal(line));
}else {
stringBuilder.append(strDeal(line));
}
i++;
}
}
System.out.println(stringBuilder.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static String strDeal(String line) {
StringBuilder stringBuilder = new StringBuilder();
String [] result = line.split("\\(")[1].split("\\)")[0].split(",");
stringBuilder.append("public static final String "+line.split("\\(")[0]+"_VALUE = "+result[0]+";\n");
stringBuilder.append("public static final String "+line.split("\\(")[0]+"_NAME = "+result[1]+";\n");
return stringBuilder.toString();
}
/**
* 原类型如下:
*
* /** 職務内容区分 *\/
* CODENO_0013_1("1", "職務内容区分"),
*
*生成的代码如下:
*
* /** 職務内容区分 *\/
* public static final String CODENO0013 = "0013";
* public static final String CODENO_0013_1_VALUE = "1";
* public static final String CODENO_0013_1_NAME = "職務内容区分";
*
*/
}