Zip4j学习笔记

Zip4j学习笔记

github地址:https://github.com/srikanth-lingala/zip4j

使用版本:2.9.0

maven依赖:

       <dependency>
           <groupId>net.lingala.zip4j</groupId>
           <artifactId>zip4j</artifactId>
           <version>2.9.0</version>
       </dependency>

Q:如何创建一个zip文件?

A:调用ZipFile的构造方法,然后调用addFile方法添加文件

注意:调用构造方法并不能直接在物理层面创建一个.zip文件,只有调用addFile方法才会真正创建

ZipFile有如下构造方法:

// 创建一个无密码的zip到指定路径
public ZipFile(String zipFile)
// 创建一个带密码的zip到指定路径
public ZipFile(String zipFile, char[] password)
// 创建一个无密码的zip到指定路径
public ZipFile(File zipFile)
// 创建一个带密码的zip到指定路径
public ZipFile(File zipFile, char[] password)

Q:如何压缩单个文件?

A:创建一个ZipFile之后,调用addFile方法(调用该方法会在物理层面把ZipFile创建出来)

addFile有如下重载方法:

注意:重复调用addFile方法时,只要压缩的文件不存在就会增量添加,不会覆盖原文件

public void addFile(String fileToAdd) throws ZipException 

public void addFile(String fileToAdd, ZipParameters zipParameters) throws ZipException 

public void addFile(File fileToAdd) throws ZipException 

public void addFile(File fileToAdd, ZipParameters parameters) throws ZipException 

Q:如何压缩多个文件?

A:创建一个ZipFile之后,调用addFiles方法(调用该方法会在物理层面把ZipFile创建出来)
addFiles有如下重载方法:

注意:添加单个文件(addFile)实际上底层调的是添加多个文件的方法(addFiles)

public void addFiles(List<File> filesToAdd) throws ZipException
    
public void addFiles(List<File> filesToAdd, ZipParameters parameters) throws ZipException

Q:如何压缩文件夹?

A:创建一个ZipFile之后,调用addFolder方法(调用该方法会在物理层面把ZipFile创建出来)
addFolder有如下重载方法:

注意:压缩文件夹的意思是将整个文件夹压缩,新建的压缩包的根目录就是该文件夹

public void addFolder(File folderToAdd) throws ZipException
    
public void addFolder(File folderToAdd, ZipParameters zipParameters) throws ZipException
    
private void addFolder(File folderToAdd, ZipParameters zipParameters, boolean checkSplitArchive) throws ZipException

Q:如何分卷压缩文件?

A:创建一个ZipFile之后,调用createSplitZipFile/createSplitZipFileFromFolder方法(调用该方法会在物理层面把ZipFile创建出来)

什么场景下需要分卷压缩?

eg:举个工作中实际遇到的例子,我司有邮件发送报表的功能,随着业务量增加,报表附件突破了单个50M的限制导致发送失败,这种情况下将报表分卷压缩到每个30M即可解决

public void createSplitZipFile(List<File> filesToAdd, ZipParameters parameters, boolean splitArchive,
                            long splitLength) throws ZipException
    
public void createSplitZipFileFromFolder(File folderToAdd, ZipParameters parameters, boolean splitArchive,
                                      long splitLength) throws ZipException
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值