Java的I/O流——ZIP压缩输入/输出流

本文介绍了如何使用Java内置的ZipOutputStream和ZipInputStream类进行文件的压缩和解压缩操作。ZipOutputStream用于将文件压缩成.zip格式,而ZipInputStream则用于读取和解压ZIP文件。在压缩过程中,ZipEntry类用于创建文件条目,对于包含文件夹的压缩,需要遍历并添加所有条目;解压时,ZipInputStream逐个读取并解压条目。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值