/**
* 将解析之后的文件内容返回字符串
* @param name 模板文件名
* @param root 数据Map
* @return
*/
public static String printString(String name,Map<String,Object> root) {
StringWriter out = new StringWriter();
try {
//通过一个文件输出流,就可以写到相应的文件中
Template temp = getTemplate(name);
temp.process(root, out);
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
} finally {
try {
if(out!=null) out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return out.toString();
}
我将上面方法返回的String和文件名存入map中了
response.reset();
response.setContentType("application/x-download; charset=UTF-8");
response.addHeader("Content-Disposition", "attachment; filename="+
//使用URLEncoder.encode方法可以解决文件名乱码的问题
URLEncoder.encode(map.get("FILE_NAME").toString(), "UTF-8"));
byte[] b = new byte[1024];
InputStream is = IOUtils.toInputStream((String)map.get("FILE"),"UTF-8");
int data;
while ((data = is.read(b)) != -1) {
response.getOutputStream().write(b, 0, data);
}
版权声明:本文为banweili008原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。