File类型文件写入到HttpServletResponse ServletOutputStream
时间: 2024-02-03 11:02:03 浏览: 75
可以通过以下代码将一个File类型的文件写入到HttpServletResponse的ServletOutputStream中:
```java
public void writeFileToResponse(File file, HttpServletResponse response) throws IOException {
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + file.getName());
try (ServletOutputStream outputStream = response.getOutputStream();
FileInputStream inputStream = new FileInputStream(file)) {
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, len);
}
outputStream.flush();
}
}
```
代码中,首先设置response的Content-Type为application/octet-stream,表示是二进制流。然后设置Content-Disposition头部信息,告诉浏览器以附件形式下载文件,并指定文件名。
接着,通过response的getOutputStream方法获取ServletOutputStream对象,然后通过FileInputStream读取文件内容,并写入到ServletOutputStream中,最后调用flush方法刷新缓冲区。
阅读全文