通过多个线程写入ZipOutputStream

时间:2016-08-25 17:35:32

标签: java download java-io zipoutputstream

问题:我需要下载大量文件(文件大小可达2GB)并将这些文件作为zip发送给请求资源的客户端。 我希望并行化该操作。目前我使用的库需要OutputStream(在我的情况下它是ZipOutputStream)作为输入,并使用ApacheCommons IOUtils将下载文件的内容写入该输出流。这种方法的问题是一切顺序发生。我要下载一个文件,然后写入OutputStream,创建一个新的zipEntry,关闭该条目然后转到下一个。 我想并行执行下载操作,如果可能,我还需要并行写入ZipOutputStream。以前有人遇到过这件事吗? 我计划更改该库的签名以返回下载资源的InputStream,以便我可以并行获取这些内容,然后按顺序为每个流创建新的ZipEntry。这样我至少可以并行下载文件。 我创建ZipOutStream的方式如下:

ZipOutputStream zo = new ZipOutputStream(httpservletResponse.getOutputStream);

有什么想法吗?

0 个答案:

没有答案