java 项目总是有上传 zip 包和下载 zip 包的需求,这时就得用 ZipInputStream 和 ZipOutputStream 类。
基础概念
-
ZipOutputStream:是一种 FilterInputStream 、装饰器模式中的实现类,它可以直接读取zip 包的内容
- ZipOutputStream (OutputStream out):zip 输出流
- ZipEntry(String name):表示压缩文件中的一个文件或者目录
- void putNextEntry(ZipEntry e):写入新的压缩文件或者目录
-
ZipIutputStream:是一种 FilterOutputStream, 可以实现 zip 文件的解压
- ZipIutputStream (IutputStream out):zip 输入流
- ZipEntry getNextEntry():得到压缩文件中的一个文件或者目录
压缩
压缩文件就是先读取一个文件夹的内容,创建 ZipEntry 放入 ZipOutputStream 下,然后用 InputStream 读取源文件内容并写入 ZipOutputStream。
1 |
|
解压
一个压缩文件就是一个特殊的 File 叫做 ZipFile,用 Enumeration 类取出 zip 文件中被压缩的文件。
1 |
|
解压文件 就是先用 zipFile.entries() 读取压缩文件夹中的文件, 生成 InputStream 流后写入被解压的 输出流
1 |
|
总结
介绍了一下 java 中的压缩文件是如何解压与压缩的,对小伙伴们有帮助的话就点个赞哦。
示例代码:https://github.com/javatechnorth/java-north-sample/blob/master/zip/zipDemo.java