创建 zip 文件而不写入磁盘

Zwa*_*bhi 2 java java-io

我正在开发一个 Springboot 应用程序,当用户下载一些报告时,它必须将一个 zip 文件返回到前端。我想创建一个 zip 文件而不将 zip 文件或原始文件写入磁盘。

我要压缩的目录包含其他目录,其中包含实际文件。例如,dir1 内部有 subDir1 和 subDir2,subDir1 将有两个文件 subDir1File1.pdf 和 subDir1File2.pdf。subDir2 里面也有文件。

通过在磁盘上创建物理文件,我可以轻松做到这一点。但是,我觉得在不写入磁盘的情况下返回这些文件会更优雅。

Nei*_*eil 5

如果范围是写入内存,您将使用ByteArrayOutputStream。从本质上讲,zip 文件将完全包含在内存中,因此请确保您不会有一次请求过多的风险,并且文件大小要合理!否则这种方法可能会适得其反!