欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java解压zip文件的关键代码

程序员文章站 2024-03-13 13:41:03
废话不多说了,给大家贴关键代码了,具体代码如下所示: import java.io.file; import java.io.fileoutputstream;...

废话不多说了,给大家贴关键代码了,具体代码如下所示:

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;
import org.springframework.stereotype.service;
import org.springframework.transaction.annotation.transactional;
/** 
* @date 创建时间:2016年9月25日 上午11:06:46 
* @version 1.0 
* @parameter 
* @since 2016年9月25日 上午11:06:46
* @return 
*/
public class unzipfiles {
  //zip文件路径
  string fileaddress = "d:\\test.zip";
  //zip文件解压地址
  string unzipaddress = "f:\\unzipfiles\\";
  //去目录下寻找文件
  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();//解压完以后将压缩包删除 
}

好了,代码到此结束,以上所述是小编给大家介绍的java解压zip文件的关键代码,希望对大家有所帮助