zoukankan      html  css  js  c++  java
  • java实现文件压缩与解压

    用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

  • 相关阅读:
    2.2编译模块实现内核数据操控小结
    期末总结20135320赵瀚青LINUX内核分析与设计期末总结
    20135320赵瀚青LINUX期中总结
    20135320赵瀚青LINUX第八周学习笔记
    20135320赵瀚青LINUX第四章读书笔记
    20135320赵瀚青LINUX第七周学习笔记
    20135320赵瀚青《深入理解计算机系统》第七章读书笔记
    让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法
    VMware虚拟机,vps忘记密码修改密码
    项彪与许知远谈论的问题---清醒的活着
  • 原文地址:https://www.cnblogs.com/huzi007/p/4636126.html
Copyright © 2011-2022 走看看