2013-12-10 3 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 для создания программных файлов Java, вместо использования методов добавления println() или String. На своем веб-сайте:

CodeModel - это библиотека Java для генераторов кода; он обеспечивает способ генерации программ Java намного лучше, чем PrintStream.println(). Этот проект является побочным из JAXB RI для его компилятора схемы для генерации исходных файлов Java.

Но основная проблема с CodelModel - это очень мало документации. API docs - единственная библия, которую вы можете получить для этого.

Если вам удобно с разработкой плагина Eclipse, вы можете использовать Eclipse's AST для создания файла Java программно. Он может даже работать автономно без Eclipse.

1

Я использовал FreeMarker шаблоны для генерации исходного файла java. Это очень мощный инструмент, который позволяет вам определить исходный шаблон и модель, где вы можете определить переменные, методы и все, что угодно, и позволить вам скомпилировать любой формат (txt, java и т. Д.)

Вы можете начать с определяя шаблон с помощью заполнителя для вашего требуемого источника java, файла, а затем вы можете программно применять значения для placeholder.

Данный пример иллюстрирует работу этого API, вы можете расширить пример, чтобы создать исходный файл Java http://viralpatel.net/blogs/freemaker-template-hello-world-tutorial/

Смежные вопросы