第1关:ZIP文件夹解压小程序之文件压缩
任务描述
本关任务:实现压缩文件或文件夹的功能。
相关知识
ZIP 是一种较为常见的压缩形式,在 Java 中要想实现 ZIP 的压缩需要导入 java.util.zip 包,可以使用此包中的 ZipFile、ZipOutputStream、ZipInputStream、ZipEntry 几个类完成。这里我们主要讲解 ZipOutputStream 和 ZipEntry 的使用。
ZipOutputStream:此类为以 ZIP 文件格式写入文件实现输出流过滤器。
构造方法:
// 实例化 ZipOutputStream 对象,创建新的 ZIP 输出流。
ZipOutputStream out = new ZipOutputStream(OutputStream out);
常用方法:
-
void close():关闭 ZIP 输出流和正在过滤的流;
-
void closeEntry():关闭当前 ZIP 条目并定位流以写入下一个条目;
-
void finish():完成写入 ZIP 输出流的内容,无需关闭基础流;
-
void putNextEntry(ZipEntry e):开始写入新的 ZIP 文件条目并将流定位到条目数据的开始处;
-
void setComment(String comment):设置 ZIP 文件注释;
- void write(byte[] b, int off, int len):将字节数组写入当前 ZIP 条目数据。
ZipEntry:用于表示 ZIP 文件条目。
构造函数:
// 用指定的名称创建一个新的 zip 条目
ZipEntry zipEntry = new ZipEntry(String name);
// 使用从指定的 zip 条目中获取的字段来创建新的 zip 条目
ZipEntry zipEntry = new ZipEntry(ZipEntry e)
在压缩文件中,每一个压缩的内容都可以用一个 ZipEntry 表示,所以在进行压缩之前必须通过 putNextEntry 设置一个 ZipEntry 即可。
常用方法:
-
String getName():返回条目的名称;
-
long getSize():返回条目数据的未压缩大小,如果未知,则返回 -1;