2013-05-16 2 views
1

Я использую скорость Apache, поэтому у меня есть * .vm-файл, содержание которого «Hello $ name».Сохранить в файл со значением вместо placeholder

Velocity.init(); 
VelocityContext context = new VelocityContext(); 
context.put("name", "Velocity"); 
StringWriter w = new StringWriter(); 
Velocity.mergeTemplate("testtemplate.vm", context, w); 
System.out.println(" template : " + w); 

Результат этого кода -

template : Hello Velocity! 

Моя задача состоит в том, чтобы сохранить этот результат в файл. Как я могу сохранить его так, чтобы в файле вместо placeholder была реальная ценность («Hello Velocity!» В данном конкретном случае).

ответ

2

Velocity.mergeTemplate принимает автора. В этом случае вы передаете StringWriter, который просто сбрасывает все в строке. Вы можете либо передать FileWriter вместо этого, который может сохранить результат непосредственно в целевом файле, либо вручную распечатать в файл результат w.toString();

FileWriter w = new FileWriter("/path/to/targetFile.txt"); 
Velocity.mergeTemplate("testtemplate.vm", context, w); 
w.close();