Java实现zip文件压缩与解压缩详解

Java中实现zip的压缩与解压缩

1 基本概念
ZipOutputStream 实现文件的压缩
ZipOutputStream (OutputStream out) 创建新的zip输出流
void putNextEntry(ZipEntry e) 开始写入新的zip文件条目并将流定位到条目数据的开始处
条目指的是一个文件夹下的多个文件。
ZipEntry(String name) 使用指定名称创建新的zip条目
ZipIutputStream实现文件的解压
ZipIutputStream (IutputStream out) 创建新的zip输入流
ZipEntry getNextEntry()读取下一个zip条目并将流定位到该条目数据的开始处
2 zip压缩
2.1 zip压缩代码实现
程序完整代码

maven依赖:

运行程序:

在这里插入图片描述

3.程序解读:

ZipEntry(String name) 只能实现一个固定条目的压缩,也就是你压缩什么就得写仔细它的路径,多个子文件压缩写法如下:

注意:

一定要写全E:\\Testzip\\test\\ytt.html,如果写E:\\Testzip\\test\\ytt会报错,报错信息无访问权限。

String input :定义的是待压缩文件的条目。

String output:定义得到的压缩文件包.zip的名字。

String name:定义压缩后的条目的名字,如果与压缩前保持一致,定义name为null即可。

此程序无法实现对空文件夹的压缩。

2.2 zip压缩代码改进
改进的代码可以实现对任意文件的压缩,注意要写全文件类型,比如ytt.html,不允许省略.html。

3 zip解压

3.1 zip不完美实现

这个网上有很多代码的,比如:

以上代码运行时会抛出异常!!!!!!!!!

做出相应更改:

完美运行!!!

3.2 zip解压完美实现

改进后的代码

4 FileZip.class 实现.zip压缩与解压

完整代码:

转自:https://blog.csdn.net/qq_34474324/article/details/97369763

发表回复