我想下载我正在使用其中的内容创建的 MS Word 2003 文档myString
。我使用了以下代码:
BufferedReader reader = new BufferedReader(new FileReader(templatePathFilename));
HttpServletResponse response = new MyHttpServletResponse();
response.setContentType ("application/msword");
response.setHeader ("Content-Disposition", "attachment; filename=\""+outgoingFileName);
ServletOutputStream myOut = response.getOutputStream();
myOut.write(myString.getBytes());
myOut.flush();
myOut.close();
但是该行myOut.write(myString.getBytes())
给出了 NullPointerException。
MyHttpServletResponse
是eclipse在我快速修复生成的错误时默认生成的一个类。我需要修改那个类吗?任何人都可以请帮助!
编辑:我正在处理的实际代码如下:
BufferedReader reader = new BufferedReader(new FileReader(templatePathFilename));
String outgoingFileName = outputPathFilename;
response.setContentType("application/msword");
response.setHeader("Content-Disposition", "attachment; filename="+outgoingFileName);
OutputStream myOut = response.getOutputStream();
try {
String thisLine;
while ((thisLine = reader.readLine()) != null) {
if(thisLine.contains("##"))
{
for (java.util.Enumeration e = FrontSheetMap.keys(); e.hasMoreElements();{
String name = (String) e.nextElement();
String value = FrontSheetMap.get(name).toString();
thisLine= thisLine.replaceAll("##" + name.toUpperCase() + "##", value);
}
}
myOut.write(thisLine);
myOut.write("\n");
}
myOut.flush();
}catch(Exception e){}
while 循环将输入文件中的占位符替换为所需的值,并将其中的新内容thisLine
写入输出文件。我需要一个下载选项,单击执行此代码的链接会弹出该选项。