将URL流作为zip发送

时间:2013-12-22 13:20:44

标签: java zip file-transfer

我想通过urlstream读取一个未在服务器上压缩的文件,并将其作为压缩文件发送。我的问题是,最有效的方法或最佳做法是什么。例如,是否可以以流方式执行此操作,我的意思是不首先将内容保存到本地光盘或内存中?

2 个答案:

答案 0 :(得分:1)

  

例如,是否可以以流方式执行此操作,我的意思是不先将内容保存到本地光盘或内存中?

是。使用ZipOutputStream

但是,执行此操作的标准HTTP方法是使用gzip压缩,而不是zip压缩。这样,用户代理就可以透明地解压缩另一端的文件。

答案 1 :(得分:1)

Http正在使用gzip压缩。使用ZipOutputStreamGZIPOutputStream稍微复杂一点,因为zip文件是可以包含多个文件的容器。

由于您正在寻找有效的方法,因此不会使用太多内存良好的解决方案FlushableGZIPOutputStream也是:

  

扩展GZIPOutputStream以解决几个问题   站在JDK错误(错误4255743和错误4813885)所以GZIP输出   可以冲洗。