HttpServletResponse保存文件
时间: 2023-11-08 13:59:12 浏览: 65
HttpServletResponse对象是用来向客户端发送响应的,它并不是用来保存文件的。在Java中,可以使用HttpServletResponse的getOutputStream()方法获取一个OutputStream对象,然后将文件内容写入该流来实现文件下载。以下是一个示例代码:
```java
@RequestMapping(value = "/downloadFile", method = RequestMethod.GET)
public void downloadFile(HttpServletResponse response) {
try {
// 设置响应头信息,告诉浏览器该文件为下载文件
response.setHeader("Content-Disposition", "attachment; filename=\"filename.ext\"");
response.setContentType("application/octet-stream");
// 读取文件内容并写入response的输出流
InputStream inputStream = new FileInputStream("path/to/file");
OutputStream outputStream = response.getOutputStream();
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
inputStream.close();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
```