我有这个例子,它在控制台中显示结果
HttpServletResponse presponse
presponse.setContentType(text/xml; charset=UTF-8)
PrintWriter lout = presponse.getWriter();
lout.println(var);
lout.close();
但我想将结果保存在可下载文件中,而不是在控制台中显示它 能帮帮我吗
答案 0 :(得分:1)
如果您不想将文件内容作为HTTP响应有效负载提供,则不应将其写入response.getWriter()
。顺便说一句,你不“在控制台中显示它”,你将它作为HTTP响应发送给客户的请求。
要在本地磁盘上保存包含该内容的文件,只需创建FileOutputStream
并在其中写入文件内容。
对于HTTP响应,只需提供新创建的可下载文件的URL(作为Location
标题或其他内容)。
答案 1 :(得分:0)
你可以这样做,你需要设置正确的mime-type
和content-length
标题。
File downloadFile = new File(filePath);
FileInputStream inStream = new FileInputStream(downloadFile);
// obtains response's output stream
OutputStream outStream = response.getOutputStream();
byte[] buffer = new byte[4096];
int bytesRead = -1;
while ((bytesRead = inStream.read(buffer)) != -1) {
outStream.write(buffer, 0, bytesRead);
}
inStream.close();
outStream.close();