springboot zip文件流下载
时间: 2023-10-18 19:16:00 浏览: 170
以下是使用 Spring Boot 实现 zip 文件流下载的示例代码:
```java
@GetMapping("/download")
public void downloadZip(HttpServletResponse response) throws IOException {
// 设置文件名和文件类型
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=example.zip");
response.setContentType("application/zip");
// 创建 ZipOutputStream
ZipOutputStream zipOut = new ZipOutputStream(response.getOutputStream());
// 添加要压缩的文件
File file1 = new File("/path/to/file1.txt");
addFileToZip(zipOut, file1);
File file2 = new File("/path/to/file2.txt");
addFileToZip(zipOut, file2);
// 关闭 ZipOutputStream
zipOut.finish();
zipOut.close();
}
private void addFileToZip(ZipOutputStream zipOut, File file) throws IOException {
// 创建 ZipEntry
ZipEntry zipEntry = new ZipEntry(file.getName());
zipOut.putNextEntry(zipEntry);
// 读取文件内容并写入 ZipOutputStream
FileInputStream fileIn = new FileInputStream(file);
byte[] buffer = new byte[1024];
int len;
while ((len = fileIn.read(buffer)) > 0) {
zipOut.write(buffer, 0, len);
}
// 关闭 FileInputStream
fileIn.close();
}
```
在上述代码中,我们定义了一个 `downloadZip()` 方法,该方法会设置文件名和文件类型,并创建一个 `ZipOutputStream` 对象。然后,我们调用 `addFileToZip()` 方法,将要压缩的文件添加到 `ZipOutputStream` 中。最后,我们关闭 `ZipOutputStream`,完成文件下载。
阅读全文