2013-12-10 54 views
0

下面是創建一個Java編程文件這是創建一個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(); 
    } 

回答

3

是的,還有更好的辦法。使用CodeModel以編程方式創建,而不是使用println()或字符串追加方法的Java文件。來自他們的網站:

CodeModel是一個用於代碼生成器的Java庫;它提供了一種方法來生成Java程序在某種程度上比PrintStream.println好多了()。該項目是JAXB RI爲其模式編譯器生成Java源文件的衍生產品。

但CodelModel的主要問題是非常少的文檔。 API文檔是您可以擁有的唯一聖經。

如果您熟悉Eclipse插件開發,你可以使用Eclipse's AST以編程方式創建Java文件。它甚至可以在沒有Eclipse的情況下獨立工作。

1

我已經使用FreeMarker模板來生成java源文件。這是一個非常強大的工具,它允許你定義一個源模板和模型,你可以在其中定義變量,方法和每一件事,並允許你編譯成任何多種格式(txt,java等)。

你可以從定義模板,佔位符爲您所需的Java源文件,然後以後就可以編程應用值的佔位符。

給出的例子說明這個API的工作,可以延長例子創建Java源文件 http://viralpatel.net/blogs/freemaker-template-hello-world-tutorial/

相關問題