码迷,mamicode.com
首页 > 编程语言 > 详细

java实现文件压缩与解压

时间:2015-07-10 18:13:17      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:

用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实现文件压缩与解压

标签:

原文地址:http://www.cnblogs.com/huzi007/p/4636126.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!