说明:用于读取配置文件生成.java文件的方法
/**
* @param fileName 配置文件路径
* @param targetName 生成文件名
* 此处Generator为当前类,用户可根据自己需要替换
* 注意当前类的工作空间路径尽量不要有空格
*/
public void doGenerator(String fileName, String targetName){
Properties fp = new Properties();
InputStream in = Generator.class.getResourceAsStream(fileName);
try {
fp.load(in);
in.close();
String dictName = "/" + Generator.class.getName().replace('.', '/');
URL outUrl1 = Generator.class.getResource(dictName + ".class");
dictName = dictName.substring(0, (dictName.lastIndexOf("/") + 1));
String tmpPath = outUrl1.getFile();
String dir = tmpPath.substring(0, tmpPath.indexOf("bin"));
String realPath = dir + "src" + dictName + targetName;
System.err.println("begin dictionary generation ");
PrintStream prt = new PrintStream(new java.io.FileOutputStream(realPath));
prt.println("/**");
prt.println("* "+targetName+".java Created on " + new Date());
prt.println("*/ ");
prt.println("package com.luodc.generateJava;");
prt.println();
prt.println("public class "+targetName+" {");
Set set = new TreeSet(fp.keySet());
for (Iterator i = set.iterator(); i.hasNext();) {
String name = (String) i.next();
String value = fp.getProperty(name);
if (name.indexOf('[') == -1 && name.indexOf(']') == -1) {
StringBuffer buffer =
new StringBuffer(" public static final String ");
buffer.append(name.toUpperCase());
buffer.append("=\"").append(name).append("\";");
int chars = 20 - buffer.length() % 20;
buffer.append(nchar(' ', chars));
String comment = new String(value.getBytes("utf-8"));
buffer.append("//").append(comment);
prt.println(buffer);
}
}
prt.println("}");
prt.flush();
prt.close();
}catch (Exception e) {
System.out.println("出现异常,异常信息为:"+e);
}
}
private static StringBuffer nchar(char c, int n) {
StringBuffer b = new StringBuffer();
for (int i = 0; i < n; i++)
b.append(c);
return b;
}