ZIP压缩输入/输出流
ZIP压缩管理文件是一种十分典型的文件压缩形式,使用它可以节省储存空间、关于ZIP压缩的I/O流实现,在Java的内置类中提供了非常好用的相关类,ZipOutputStream 与 ZipInputStream 类来实现文件的压缩/解压缩。无论是压缩还是解压还需要用到一个类—ZipEntry类,它为压缩或解压的文件创建条目。
压缩文件
利用ZipOutputStream 类对象,可将文件压缩为.zip文件,压缩文件的过程
ZipOutputStream类的常用方法
方法 | 说明 |
---|---|
putNextEntry(ZipEntry e) | 开始写一个新的ZipEntry,并将流内的位置移至entry所指数据开头 |
write(byte [] b, int off, int len) | 将字节数组写入当前ZIP条目数据 |
finish() | 完成写入ZIP输入流的内容,无须关闭它所配合的OutputStream |
setComment(String comment) | 可设置此ZIP文件的注释文字 |
代码如下:
public class Study2 {
public void zip() {
File f1 = new File("C:\\Users\\逢青\\Desktop\\123");// 压缩的源文件
File f2 = new File("C:\\Users\\逢青\\Desktop\\321.zip");// 压缩包位置
try (FileOutputStream fos = new FileOutputStream(f2); ZipOutputStream zos = new ZipOutputStream(fos)) {
if (f1.isDirectory()) {
// 判断源文件是否为文件夹
for (File f : f1.listFiles()) {
// 遍历文件夹中的文件
addEntry(zos, "", f);//调用创建方法的条目,为遍历的文件创建条目
}
} else {
addEntry(zos, "", f1);//调用创建方法的条目,为文件创建条目
}
} catch