package demo; 


 import java.io.File; 

 import java.io.FileOutputStream; 

 import java.io.IOException; 

 import java.io.InputStream; 

 import java.util.Enumeration; 

 import org.apache.tools.zip.ZipEntry; 

 import org.apache.tools.zip.ZipFile; 


 public class test01 { 

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

//zip文件路径 

String fileAddress = "D:\\Android\\workspace\\zip0322\\files\\demo01.zip"; 

//zip文件解压地址 

String unZipAddress = "D:\\Android\\workspace\\zip0322\\files\\"; 

File file = new File(fileAddress); 

ZipFile zipFile = null; 

try { 

zipFile = new ZipFile(file,"GBK");//设置编码格式 

} catch (IOException exception) { 

exception.printStackTrace(); 

System.out.println("解压文件不存在!"); 

} 

Enumeration e = zipFile.getEntries();  

while(e.hasMoreElements()) {  

ZipEntry zipEntry =(ZipEntry)e.nextElement(); 

if(zipEntry.isDirectory()){ 

String name=zipEntry.getName(); 

name=name.substring(0,name.length()-1); 

File f=new File(unZipAddress+name); 

f.mkdirs(); 

}else { 

File f = new File(unZipAddress+zipEntry.getName()); 

f.getParentFile().mkdirs(); 

f.createNewFile(); 

InputStream is=zipFile.getInputStream(zipEntry); 

FileOutputStream fos=new FileOutputStream(f); 

int length=0; 

byte[] b=new byte[1024]; 

while((length=is.read(b,0,1024))!=-1){ 

fos.write(b, 0, length); 

} 

is.close(); 

fos.close(); 

} 

} 

if(zipFile != null){ 

zipFile.close(); 

} 

//file.deleteOnExit(); 

System.out.println("ok"); 

} 

 }