以下是以编程方式创建java文件的代码
这是正确的方法吗?还是有其他方式
public static void main(String[] args) throws IOException {
File atlas = new File("D:/WIP/pac/n/sample.txt");
if (!atlas.exists()) {
System.out.println("File not exist");
}
FileHandle mAtlasHandle = new FileHandle(atlas);
BufferedReader reader = mAtlasHandle.reader(1024);
String line = null;
ArrayList<String> mArrayList = new ArrayList<String>();
while ((line = reader.readLine()) != null) {
mArrayList.add(line);
}
File file = new File("D:/WIP/pac/n/Sample.java");
if (!file.exists()) {
file.createNewFile();
}
String packageName = "package com.atom.lib;";
PrintWriter writer = new PrintWriter(file);
String mString = new String(file.getName());
String name = mString.replaceFirst("[.][^.]+$", "");
String output = Character.toUpperCase(name.charAt(0)) + name.substring(1);
writer.println(packageName);
writer.println("public class " + output);
writer.println("{");
for (String obj : mArrayList) {
writer.println("public String " + obj + "=\"" + obj + "\";");
}
writer.println("}");
writer.close();
}
答案 0 :(得分:4)
是的,有更好的方法。使用CodeModel以编程方式创建Java文件,而不是使用println()
或String附加方法。来自他们的网站:
CodeModel是代码生成器的Java库;它提供了一种以比PrintStream.println()更好的方式生成Java程序的方法。该项目是JAXB RI的衍生产品,用于其模式编译器生成Java源文件。
但CodelModel的主要问题是文档很少。 API文档是您可以拥有的唯一圣经。
如果您熟悉Eclipse插件开发,可以使用Eclipse's AST以编程方式创建Java文件。它甚至可以在没有Eclipse的情况下独立工作。
答案 1 :(得分:1)
我使用FreeMarker模板生成java源文件。这是一个非常强大的工具,允许您定义源模板和模型,您可以在其中定义变量,方法和所有内容,并允许您编译为任何多种格式(txt,java等)
您可以首先使用占位符为您所需的java源文件定义模板,然后您可以以编程方式应用占位符的值。
给出示例说明此API的工作,您可以扩展示例以创建java源文件 http://viralpatel.net/blogs/freemaker-template-hello-world-tutorial/