读取配置文件生成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;
	}


猜你喜欢

转载自luodingcai632.iteye.com/blog/2003899