研究hibernatesynchronizer的源码,看到他将velocity模板和编译的类一起打包在jar包中,在获得模板时使用
Xobject.class.getClassLoader().getResourceAsStream("/templates/xx.vm")获得流,然后再将转变成字符串
public static String getStringFromStream(InputStream is) throws IOException {
if (null == is)
return null;
try {
InputStreamReader reader = new InputStreamReader(is);
char[] buffer = new char[1024];
StringWriter writer = new StringWriter();
int bytes_read;
while ((bytes_read = reader.read(buffer)) != -1) {
writer.write(buffer, 0, bytes_read);
}
return (writer.toString());
} finally {
if (null != is)
is.close();
}
}
最后调用velocity的方法
Velocity.evaluate(Context context, java.io.Writer out, java.lang.String logTag, java.lang.String instring)
从而生成文件。居然不知道velocity有这样的方法,挺无知的,为了路径焦头烂额,终于得解了。总结一下技巧:
1、Xobject.class.getClassLoader().getResourceAsStream("/templates/xx.vm")相对路径获得流;
2、Velocity.evaluate(...)方法使用;
posted on 2006-11-28 14:21
野草 阅读(3054)
评论(0) 编辑 收藏 所属分类:
2shtv