java 压缩 工具类_工具类:ZipUtil.java:文件压缩解压

工具类:ZipUtil.java:文件压缩解压

工具类:ZipUtil.java:文件压缩解压

JavaWeb工具类目录 [http://baike.xsoftlab.net/view/1059.html](http://baike.xsoftlab.net/view/1059.html)

用到的jar包:

[http://download.csdn.net/download/yufang131/7586251](http://download.csdn.net/download/yufang131/7586251)

源码:

```java

package com.zhenzhigu.commons.util;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Enumeration;

import java.util.List;

import org.apache.commons.io.IOUtils;

import org.apache.tools.zip.ZipEntry;

import org.apache.tools.zip.ZipFile;

import org.apache.tools.zip.ZipOutputStream;

/**

* Zip压缩工具

* @author Master.Xia@zhenzhiguz.com

* @version 1.0 Date:2016年8月26日11:01:39

* @version 2.0 Date:2017年2月13日22:43:11

*/

public class ZipUtil {

/**

* 压缩文件

* @param src 要压缩的文件或目录的绝对路径

* @param zip 输出的压缩文件的绝对路径

* @throws IOException

*/

public static void zip(String src, String zip) throws IOException {

zip(new File(src), new File(zip));

}

/**

* 压缩文件

* @param src 要压缩的文件或目录的绝对路径

* @param zip 输出的压缩文件

* @throws IOException

*/

public static void zip(String src, File zip) throws IOException {

zip(new File(src), zip);

}

/**

* 压缩文件

* @param src 要压缩的文件或目录

* @param zip 输出的压缩文件的绝对路径

* @throws IOException

*/

public static void zip(File src, String zip) throws IOException {

zip(src, new File(zip));

}

/**

* 压缩文件

* @param src 要压缩的文件或目录

* @param zip 输出的压缩文件

* @throws IOException

*/

public static void zip(File src, File zip) throws IOException {

List list = foreach(src);

ZipOutputStream out = new ZipOutputStream(zip);

for (ZipEntry en : list) {

File fo = new File(src.getParent(), en.getName());

out.putNextEntry(en);

FileInputStream in = new FileInputStream(fo);

byte[] buffer = new byte[1024*8];

for(int len=0;(len=in.read(buffer))!=-1;){

out.write(buffer, 0, len);

}

in.close();

out.flush();

}

out.close();

}

/**

* 解压缩

* @param zip 需要解压的压缩文件

* @param out 解压到的目录

* @throws Exception

*/

public static void unzip(String zip,String out) throws Exception {

unzip(new File(zip), new File(out));

}

/**

* 解压缩

* @param zip 需要解压的压缩文件

* @param out 解压到的目录

* @throws Exception

*/

public static void unzip(String zip,File out) throws Exception {

unzip(new File(zip), out);

}

/**

* 解压缩

* @param zip 需要解压的压缩文件

* @param out 解压到的目录

* @throws Exception

*/

public static void unzip(File zip,String out) throws Exception {

unzip(zip, new File(out));

}

/**

* 解压缩

* @param zip 需要解压的压缩文件

* @param out 解压到的目录

* @throws Exception

*/

public static void unzip(File zip,File out) throws Exception {

ZipFile zipFile = new ZipFile(zip,"GB18030");

for (Enumeration entries = zipFile.getEntries(); entries.hasMoreElements();) {

ZipEntry entry = entries.nextElement();

File file = new File(out,entry.getName());

if (entry.isDirectory()) {

file.mkdirs();

} else {

File parent = file.getParentFile();

if (!parent.exists()) {

parent.mkdirs();

}

IOUtils.copy(zipFile.getInputStream(entry), new FileOutputStream(file));

}

}

zipFile.close();

}

private static List foreach(File file) {

return foreach(file, "");

}

private static List foreach(File file, String path) {

List list = new ArrayList();

if (file.isDirectory()) {

path += file.getName() + File.separator;

for (File fo : file.listFiles()) {

list.addAll(foreach(fo, path));

}

} else if (file.isFile()) {

list.add(new ZipEntry(path + file.getName()));

}

return list;

}

public static void main(String[] args) throws Exception {

//zip("d:/abc", "d:/haha.zip");

unzip("d:/FlashFXPPortable.zip","d:/abc");

}

}

```

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值