如何使用Stringtemplate 4.x直接写入OutputStream?

我不想调用.render()并从我的一些模板构建非常大的字符串.在以前的版本中,您可以直接写入OutputStream,而不必将整个模板呈现为String,然后将其写出来.

我尝试将ST.write()与NoIndentWriter实例一起使用但不产生输出.

如何使用最新版本的Stringtemplate直接写入OutputStream?

最佳答案 如果要保持标准格式,可以使用AutoIndentWriter.

ST template = group.getInstanceOf("YourTemplate");
OutputStreamWriter osWriter = new OutputStreamWriter(stream);
STWriter stWriter = new AutoIndentWriter(osWriter);
template.write(stWriter);
osWriter.flush();
点赞