使用值而不是占位符保存到文件中

Posted

技术标签:

【中文标题】使用值而不是占位符保存到文件中【英文标题】:Save into the file with value instead of placeholder 【发布时间】:2013-05-11 15:17:34 【问题描述】:

我使用的是 Apache Velocity,所以我有一个 *.vm 文件,其内容是“Hello $name”。

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!

我的任务是将此结果保存到文件中。如何保存它,以便在文件中而不是占位符中是一个真实值(在这种特殊情况下为“Hello Velocity!”)。

【问题讨论】:

【参考方案1】:

Velocity.mergeTemplate 接受作家。在这种情况下,您传递了一个StringWriter,它只是将所有内容转储到一个字符串中。您可以传递一个FileWriter 代替,它可以将输出直接保存在目标文件中,或者手动将w.toString() 的结果打印到文件中;

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

【讨论】:

以上是关于使用值而不是占位符保存到文件中的主要内容,如果未能解决你的问题,请参考以下文章

如何检查所有弹簧占位符是不是存在?

如何在 simple_form 中使用占位符而不是标签?

Android Studio:是不是可以在主模块中定义库模块清单占位符?

使用 flyway 占位符生成 sql 语句

Spring_属性占位符

如何在 .yml 文件中使用属性占位符