java解压_Java实现解压zip

packagecom.lanyuan.assembly.util;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.util.Enumeration;importorg.apache.tools.zip.ZipEntry;importorg.apache.tools.zip.ZipFile;/*** 解压Zip文件工具类

*@authorzhangyongbo

**/

public classZipUtil

{private static final int buffer = 2048;/*** 解压Zip文件

*@parampath 文件目录*/

public static voidunZip(String path)

{int count = -1;

String savepath= "";

File file= null;

InputStream is= null;

FileOutputStream fos= null;

BufferedOutputStream bos= null;

savepath= path.substring(0, path.lastIndexOf(".")) + File.separator; //保存解压文件目录

new File(savepath).mkdir(); //创建保存目录

ZipFile zipFile = null;try{

zipFile= new ZipFile(path,"gbk"); //解决中文乱码问题

Enumeration> entries =zipFile.getEntries();while(entries.hasMoreElements())

{byte buf[] = new byte[buffer];

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

String filename=entry.getName();boolean ismkdir = false;if(filename.lastIndexOf("/") != -1){ //检查此文件是否带有文件夹

ismkdir = true;

}

filename= savepath +filename;if(entry.isDirectory()){ //如果是文件夹先创建

file = newFile(filename);

file.mkdirs();continue;

}

file= newFile(filename);if(!file.exists()){ //如果是目录先创建

if(ismkdir){new File(filename.substring(0, filename.lastIndexOf("/"))).mkdirs(); //目录先创建

}

}

file.createNewFile();//创建文件

is =zipFile.getInputStream(entry);

fos= newFileOutputStream(file);

bos= newBufferedOutputStream(fos, buffer);while((count = is.read(buf)) > -1)

{

bos.write(buf,0, count);

}

bos.flush();

bos.close();

fos.close();

is.close();

}

zipFile.close();

}catch(IOException ioe){

ioe.printStackTrace();

}finally{try{if(bos != null){

bos.close();

}if(fos != null) {

fos.close();

}if(is != null){

is.close();

}if(zipFile != null){

zipFile.close();

}

}catch(Exception e) {

e.printStackTrace();

}

}

}/*public static void main(String[] args)

{

unZip("F:\\110000002.zip");

String f = "F:\\110000002";

File file = new File(f);

String[] test=file.list();

for(int i=0;i

System.out.println(test[i]);

}

System.out.println("------------------");

String fileName = "";

File[] tempList = file.listFiles();

for (int i = 0; i < tempList.length; i++) {

if (tempList[i].isFile()) {

System.out.println("文 件:"+tempList[i]);

fileName = tempList[i].getName();

System.out.println("文件名:"+fileName);

}

if (tempList[i].isDirectory()) {

System.out.println("文件夹:"+tempList[i]);

}

}

}*/}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值