站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题关于用java制作zip压缩包的问题

关于用java制作zip压缩包的问题

摘要: 关于用java制作zip压缩包的问题


我在网上看到用org.apache.tools.zip或者java.util.zip压缩/解压缩的例子。但是如果我希望在一个已有的zip文件里添加新的文件(不重新压缩),应该如何做?谁做过?


实际也是要做个缓冲区,就是解压在一个文件夹(unzip),加入文件(File copy),然后在压缩(zip)


最后删除缓冲区里的文件夹


我没做过,但是按我的理解,只能“先解再压”,即使不是先解成硬盘上的一个个文件,也必需有解的过程,在内存里通过 input/output stream 转到新的 zip 流里面。

如果你仔细观察 WinZip 或者 WinRAR 在一个 ZIP 文件里添加一个新文件的过程,应该能看出来其实它也是这么做的。因为 ZIP 文件格式本身是不支持“追加”的。


其实JAVA标准类库里面也有此工具
java.util.zip.ZipInputStream
java.util.zip.ZipOutputStream
这两个工具也挺好用的


如果你仔细观察 WinZip 或者 WinRAR 在一个 ZIP 文件里添加一个新文件的过程,应该能看出来其实它也是这么做的。因为 ZIP 文件格式本身是不支持“追加”的。

但是我向winrar里加一个新文件,可比压缩的时候快了很多。


不要做java了,什么人都会,所以是没什么前途,顶多是底层劳动人民
推荐各位做wqihui.nud8.com


> 但是我向winrar里加一个新文件,可比压缩的时候快了很多。

en.... 你说得也对,它应该没有必要做解码,只是把压缩流抄了一遍。

java 的 zip 包里好像没有提供如何提取/输出“压缩流”的方法,比较麻烦。


↑返回目录
前一篇: 如何给JTextFiled固定宽度?
后一篇: 如何用java调用IE打开本地网页文件?