java response 将文件压缩下载
时间: 2023-08-04 10:04:56 浏览: 96
可以使用Java的ZipOutputStream类来实现文件压缩,并将压缩后的文件作为响应进行下载。以下是一个示例代码:
```java
public void downloadZipFile(HttpServletResponse response) throws IOException {
// 设置响应头
response.setContentType("application/zip");
response.setHeader("Content-Disposition", "attachment; filename=\"files.zip\"");
// 创建ZipOutputStream
ZipOutputStream zipOut = new ZipOutputStream(response.getOutputStream());
// 添加要压缩的文件到ZipOutputStream
List<File> filesToZip = getFilesToZip();
for (File file : filesToZip) {
ZipEntry zipEntry = new ZipEntry(file.getName());
zipOut.putNextEntry(zipEntry);
FileInputStream inputStream = new FileInputStream(file);
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) > 0) {
zipOut.write(buffer, 0, len);
}
inputStream.close();
zipOut.closeEntry();
}
// 关闭ZipOutputStream
zipOut.finish();
zipOut.close();
}
```
在上面的示例中,`getFilesToZip()`方法返回要压缩的文件列表。需要注意的是,如果要压缩的文件很大,可能需要考虑分块压缩以避免内存溢出。
阅读全文