zoukankan      html  css  js  c++  java
  • java解压文件

    private static final int buffer = 2048;
    private static final Logger logger = Logger.getLogger(Logger.class);
    /**
    * 解压Zip文件
    * @param path 文件目录
    */
    public static void unZip(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 = new File(filename);
    file.mkdirs();
    continue;
    }
    file = new File(filename);
    if(!file.exists()){ //如果是目录先创建
    if(ismkdir){
    new File(filename.substring(0, filename.lastIndexOf("/"))).mkdirs(); //目录先创建
    }
    }
    file.createNewFile(); //创建文件

    is = zipFile.getInputStream(entry);
    fos = new FileOutputStream(file);
    bos = new BufferedOutputStream(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();
    }
    }
    }

  • 相关阅读:
    find the safest road
    杭电1874(畅通工程续)
    Red and Black
    运行和控制 Nginx 命令行参数和信号
    对中文版“Siri”打个招呼吧!
    《星际迷航》语音翻译器成真
    程序员丰厚的待遇能持续多久?
    Nginx 日志分析 AWStats + JAWStats 安装配置
    RHEL 5.4 + Nginx + Mediawiki
    麻省理工科技创业之:Win 8新概念
  • 原文地址:https://www.cnblogs.com/yizw/p/7992969.html
Copyright © 2011-2022 走看看