• java 解压缩Zip文件 ziputil


    package com.lanyuan.assembly.util;

    import java.io.BufferedOutputStream;
    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;

    /**
     *  解压Zip文件工具类
     * @author zhangyongbo
     *
     */  
    public class ZipUtil
    {
        private static final int buffer = 2048;  
       
      /**
       * 解压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();  
                  }  
              }  
          }  

    /*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<test.length;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]);
                }
            }
        }  */
    }

  • 相关阅读:
    关于Smartforms换页的
    数值运算及算术运算函数
    ABAP 向上取整和向下取整 CEIL & FLOOR
    webdynpro 组件重用 传值问题
    p类型最大可定义范围
    进阶:案例五: Dynamic 创建 Business Graphic
    进阶: 案例八: Drag and Drop(动态)
    进阶:案例六: Context Menu(静态 与 动态)
    进阶:案例三: Upload File using WebDynpro
    java-根据用户输入的成绩来判断等级(新手)
  • 原文地址:https://www.cnblogs.com/runerering/p/5959072.html
Copyright © 2020-2023  润新知