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

时间: 2024-10-25 18:08:27

java实现文件压缩与解压的相关文章

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

Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例. zip扮演着归档和压缩两个角色:gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩. Java I/O类库还收录了一些能读写压缩格式流的类.要想提供压缩功能,只要把它们包在已有的I/O类的外面就行了.这些类不是Reader和Writer,而是Inpu

CompressUtils相关代码,java中文件压缩或解压已经文件的基本操作等方法

java中一些场合我们需要,对上传的压缩包中的内容进行处理,这个时候就用到了解压操作,还有压缩的操作等等,这里直接贴一下代码,以备今后自己可能会用到,还有共享给需要的小伙伴们. import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExceptio

JAVA中文件压缩、解压好方法分享

最近项目中有一个功能需要将文件压缩和解压,我这边最开始使用的是JDK中的类库,在网上找了一些样例,或多或少总是存在一些BUG,而且中文路径乱码的问题始终不能解决.没办法最终只有换方案,最后使用了apache-ant中的工具类来实现的,并且测试通过.源码也是从网上找到的,做了少量修改,这里给大家分享一下. package com.aeai.zip; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; im

文件压缩、解压工具类。文件压缩格式为zip

package com.JUtils.file; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; impor

iOS开发——网络编程OC篇&amp;(八)文件压缩与解压

文件压缩与解压 一.技术方案1.第三方框架:SSZipArchive2.依赖的动态库:libz.dylib 二.压缩11.第一个方法/** zipFile :产生的zip文件的最终路径 directory : 需要进行的压缩的文件夹路径 */[SSZipArchive createZipFileAtPath:zipFile withContentsOfDirectory:directory]; 2.第一个方法/** zipFile :产生的zip文件的最终路径 files : 这是一个数组,数组

Linux 各种类型文件 压缩、解压

个人博客首页(点击查看详情) -- https://blog.51cto.com/11495268个人微信公众号(点击查看详情) -- https://blog.51cto.com/11495268/2401194     1.简介     Linux 环境下 一切皆文件,本文描述 关于 各种类型的 文件压缩.解压 操作     2.文件压缩格式      3.zip 格式 3.1 工具安装 # apt-get install zip      3.2 压缩 # zip -r zip.zip z

linux下文件压缩与解压操作

对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕.别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rap.可是Linux就不同了,它有.gz..tar.gz.tgz.bz2..Z..tar等众多的压缩文件名,此外windows下的.zip和.rar也可以在Linux下使用,不过在Linux使用.zip和.rar的人就太少了.本文就来对这些常见的压缩文件进行一番小结,希望你下次遇到这些文件时不至于被搞晕.

实现asp.net的文件压缩、解压、下载

很早前就想做文件的解压.压缩.下载 了,不过一直没时间,现在项目做完了,今天弄了下.不过解压,压缩的方法还是看的网上的,嘻嘻~~不过我把它们综合了一下哦.呵呵~~ 1.先要从网上下载一个icsharpcode.sharpziplib.dll 2.建立类AttachmentUnZip,内容如下: using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;u

C# 文件压缩与解压(ZIP格式)

在企业开发过程中经常会遇到文件的压缩与解压,虽然网上很多流行的压缩文件格式都是RAR的,但是由于RAR不是一个开放的标准,因此ZIP成了更多人的选择.如果你不想自己开发的话可以选择开源的项目,比如SharpZipLib就是一个不错的选择. using System; using System.Collections.Generic; using System.Text; using System.IO; using ICSharpCode.SharpZipLib.Zip; using Syste