读取配置文件生成java文件

说明:用于读取配置文件生成.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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值