java 解压缩 ant_使用ant.jar包zip压缩与解压缩工具类

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.util.Enumeration;

import org.apache.log4j.Logger;

import org.apache.tools.ant.Project;

import org.apache.tools.ant.taskdefs.Zip;

import org.apache.tools.ant.types.FileSet;

import org.apache.tools.zip.ZipEntry;

import org.apache.tools.zip.ZipFile;

public class ZIPUtil {

private static Logger log =

Logger.getLogger(ZIPUtil.class);

public static String

doZip(String srcPathName,String resultPath) {

try{

File srcdir = new File(srcPathName);

if (!srcdir.exists())  {

//  throw new

RuntimeException(srcPathName + "不存在!");

log.info(srcPathName + "不存在!");

return "1";

}

File result=new File(resultPath);

if(!result.exists()){

result.mkdir();

}

Project prj = new Project();

Zip zip = new Zip();

zip.setProject(prj);

zip.setDestFile(new

File(resultPath+File.separator+srcPathName.substring(srcPathName.lastIndexOf("\\")+1,

srcPathName.length())+".zip"));

FileSet fileSet = new FileSet();

fileSet.setProject(prj);

fileSet.setDir(srcdir);

//fileSet.setIncludes("**

public static String unZip(String unZipfile, String

resultPath) {// unZipfileName需要解压的zip文件名

File srcdir = new File(unZipfile);

if (!srcdir.exists())  {

//  throw new

RuntimeException(unZipfile + "不存在!");

log.info(unZipfile + "不存在!");

return "1";

}

String

extName=unZipfile.substring(unZipfile.lastIndexOf("."));

if(!".zip".equalsIgnoreCase(extName)){

log.info(unZipfile + "不是.zip格式文件");

return "2";

}

FileOutputStream fileOut = null;

File file;

ZipFile zipFile =null;

InputStream inputStream = null;

int readedBytes;

byte[]  buf=new

byte[512];

try {

zipFile = new ZipFile(unZipfile);

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

.hasMoreElements();) {

ZipEntry entry = (ZipEntry) entries.nextElement();

file = new File(resultPath + File.separator +

entry.getName());

if (entry.isDirectory()) {

file.mkdirs();

} else {

// 如果指定文件的目录不存在,则创建之.

File parent = file.getParentFile();

if (!parent.exists()) {

parent.mkdirs();

}

inputStream = zipFile.getInputStream(entry);

fileOut = new FileOutputStream(file);

while ((readedBytes = inputStream.read(buf)) > 0) {

fileOut.write(buf, 0, readedBytes);

}

}

}

return "0";

} catch (Exception ioe) {

log.error(unZipfile + "解压发生异常:");

log.error(ioe);

ioe.printStackTrace();

return "3";

}finally{

if(fileOut!=null){

try {

fileOut.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if(inputStream!=null){

try {

inputStream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if(zipFile!=null){

try {

zipFile.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值