我想通过urlstream读取一个未在服务器上压缩的文件,并将其作为压缩文件发送。我的问题是,最有效的方法或最佳做法是什么。例如,是否可以以流方式执行此操作,我的意思是不首先将内容保存到本地光盘或内存中?
答案 0 :(得分:1)
例如,是否可以以流方式执行此操作,我的意思是不先将内容保存到本地光盘或内存中?
是。使用ZipOutputStream
。
但是,执行此操作的标准HTTP方法是使用gzip压缩,而不是zip压缩。这样,用户代理就可以透明地解压缩另一端的文件。
答案 1 :(得分:1)
Http正在使用gzip压缩。使用ZipOutputStream
比GZIPOutputStream
稍微复杂一点,因为zip文件是可以包含多个文件的容器。
由于您正在寻找有效的方法,因此不会使用太多内存良好的解决方案FlushableGZIPOutputStream也是:
扩展GZIPOutputStream以解决几个问题 站在JDK错误(错误4255743和错误4813885)所以GZIP输出 可以冲洗。