用java实现文件的压缩与解压是很常见的功能。

我最爱上代码:

  

 1 import java.io.File;
 2 import java.util.ArrayList;
 3 import java.util.List;
 4
 5 import net.lingala.zip4j.core.ZipFile;
 6 import net.lingala.zip4j.model.ZipParameters;
 7 import net.lingala.zip4j.util.Zip4jConstants;
 8
 9 /**
10  * zip压缩文件或解压文件工具类
11  * @author xiaoming
12  *
13  */
14 public class ZipUntil {
15
16
17     /**
18      * 压缩文件的方法
19      * @param files 要压缩文件的地址集合
20      * @param folders 要压缩的文件夹的地址集合
21      * @param pwd 压缩密码
22      * @param appointFile 压缩到指定文件夹的路径
23      * @return
24      * @throws Exception
25      */
26     public static int compressFile(List<String> files,List<String> folders,String pwd,String appointFile) throws Exception{
27         int flag=0;
28         if(!appointFile.isEmpty()){
29             File oldFile=new File(appointFile);
30             if(oldFile.exists()){
31                 return flag;
32             }
33             ZipFile zipFile=new ZipFile(appointFile);
34             ZipParameters parameters = new ZipParameters(); //设置参数
35             parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
36             parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
37             if (!pwd.isEmpty()) {//有密码,用密码压缩
38                 parameters.setEncryptFiles(true);
39                 parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
40                 parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
41                 parameters.setPassword(pwd);
42             }
43
44             if(!files.isEmpty()){
45                 ArrayList<File> toAddFile=new ArrayList<File>();
46                 for(String fileString : files){
47                     File file=new File(fileString);
48                     if(file.exists()){
49                         toAddFile.add(file);//添加文件
50                     }
51                 }
52                 if(!toAddFile.isEmpty()){
53                     zipFile.addFiles(toAddFile, parameters);
54                 }
55             }
56             if(!folders.isEmpty()){
57                 for(String folder : folders){
58                     File file=new File(folder);
59                     if(file.exists()){
60                         zipFile.addFolder(folder, parameters);//添加文件夹
61                     }
62                 }
63             }
64             flag=1;
65         }
66         return flag;
67     }
68
69
70     /**
71      * 解压文件的方法
72      * @param srcFile 要解压的文件
73      * @param path 解压到的路径
74      * @param pwd 解压密码
75      * @return
76      * @throws Exception
77      */
78     public static int unzip(String srcFile ,String path,String pwd ) throws Exception{
79         int flag=0;
80         if(!srcFile.isEmpty()){
81             ZipFile zipFile=new ZipFile(srcFile);//获取解压的文件
82             if(zipFile.isEncrypted()){
83                 zipFile.setPassword(pwd);//解压密码
84             }
85             zipFile.extractAll(path);//解压到指定路径
86             flag=1;
87         }
88         return flag;
89     }
90 }

以上代码基于zip4j.jar 开发的

相关包与例子下载:http://pan.baidu.com/s/1jGGOcEM

java实现文件压缩与解压相关推荐

  1. Java实现文件压缩与解压[zip格式,gzip格式]

    原文:http://www.cnblogs.com/visec479/p/4112881.html#3069573 Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个 ...

  2. java 操作Zip文件(压缩、解压、加密)

    java 操作Zip文件(压缩.解压.加密) 依赖:点击下载 package com.zxl.test;import net.lingala.zip4j.model.ZipParameters; im ...

  3. c# 文件压缩、解压及下载

    C#打包文件夹成zip格式(包括文件夹和子文件夹下的所有文件) C# 文件压缩与解压(ZIP格式) asp.net实现文件夹及文件压缩,并实现下载 转载于:https://www.cnblogs.co ...

  4. 基于哈夫曼编码完成的文件压缩及解压

    这几天在较为认真的研究基于哈夫曼编码的文件压缩及解压,费了点时间,在这分享一下: 这里用链式结构,非顺序表结构: 文件压缩: 1.获取文件信息(这里采用TXT格式文本): 2.压缩文件: 3.写配置文 ...

  5. 7z001怎么解压在安卓手机上面_安卓zip文件压缩RAR解压手机下载-安卓zip文件压缩RAR解压v1.0最新版下载...

    安卓zip文件压缩RAR解压是一款非常好用的手机压缩解压缩神器,在安卓zip文件压缩RAR解压上我们可以看到很多的实用的功能,软件可以帮助我们更好的处理我们手机中的文件,感兴趣的朋友赶紧下载安卓zip ...

  6. 7z文件压缩、解压 (7zTool.exe)

    工具下载 压缩为7z: 调用zip()函数 7z解压缩: 调用unzip()函数 using System; using System.Collections.Generic; using Syste ...

  7. linux把一个大文件压缩,linux大文件压缩及解压需要注意问题

    注意: 大文件压缩及解压需要在后台进行,如果要查看解压详情,就要输出重定向. 远程服务器,要防止网络断开连接,导致终端关闭,此时终端断开,即使后台进行,解压以及压缩也会停止.解决方法:在指令前加noh ...

  8. cordova 安卓文件多选_安卓zip文件压缩RAR解压软件下载-安卓zip文件压缩RAR解压下载v3.0.4安卓版...

    安卓zip文件压缩RAR解压是一款非常好用的手机压缩解压缩神器,在安卓zip文件压缩RAR解压上我们可以看到很多的实用的功能,软件可以帮助我们更好的处理我们手机中的文件,感兴趣的朋友赶紧下载安卓zip ...

  9. 文件压缩、解压 (ZipTool.exe)

     工具下载 压缩: 调用zip()函数. 解压缩:调用unzip()函数 添加ZipTool类至应用中,即可实现文件压缩.解压逻辑. using System; using System.Collec ...

最新文章

  1. 通风与防排烟工程电子书_菠菜关于防排烟系统使用软接头工程量计算注意及定额选用建议...
  2. 单片机at指令解析 开源_分享Github上几个开源单片机硬件驱动库
  3. 重写equals方法的hashcode_Java equals 和 hashCode 的这几个问题可以说明白吗?
  4. 对PASCAL VOC 数据集进行数据增强
  5. 装配图中齿轮的画法_装配图的规定画法 和特殊画法
  6. Angular 内容投影 content projection 的一个问题的单步调试
  7. codeforces 467A-C语言解题报告
  8. c语言编写点餐系统的图形界面,「分享」C语言如何编写图形界面
  9. 2014蓝桥杯C++B:啤酒和饮料;切面条(思维分析)
  10. 关于background的一些知识
  11. emos-第一章、项目前置准备
  12. 当前计算机技术在制图,计算机技术在《机械制图》课程中的应用
  13. 2021年度训练联盟热身训练赛第二场 ABCDGJ
  14. 【绝知此事要躬行】线性表之数组OJ
  15. 求个人所得税和税后收入
  16. 英语学习APP开发解决方案
  17. 什么是软文营销?为什么做软文营销?
  18. pip3 -bash: /usr/bin/pip3: No such file or directory
  19. 克服这些「学生思维」,离职场达人更进一步
  20. 《Kotin 极简教程》第7章 面向对象编程(OOP)(1)

热门文章

  1. python for语句_从零开始py个thon3:循环语句(1)
  2. python面试自我介绍_如何拿到半数面试公司Offer——我的Python求职之路
  3. 3说明书_怎么才能做好产品说明书翻译?知行翻译公司总结了3点
  4. 自动化测试工具selenium 之Selenium-IDE
  5. nagios监控mysql服务_nagios监控mysql服务
  6. Soul网关源码解析目录
  7. 技校计算机科技都学什么好,技校计算机都学什么?
  8. 山师计算机二级考试科目,山师计算机应用技术考试试题与答案.doc
  9. html5中颜色范围,HTML5输入范围:将runnable-track的颜色更改为当前值
  10. 蓝桥杯比赛的RTC时钟配置