zoukankan      html  css  js  c++  java
  • Java解压文件代码(相当于你在目录中选中压缩文件 右键解压)

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Enumeration;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipFile;


    public class UnZipper {

        /**
         * 解压文件到当前目录 功能相当于右键 选择解压
         * @param zipFile
         * @param
         * @author gabriel
         */
        @SuppressWarnings("rawtypes")
        public static void unZipFiles(File zipFile)throws IOException{
            //得到压缩文件所在目录
            String path=zipFile.getAbsolutePath();
            path=path.substring(0,path.lastIndexOf("\\"));
           // System.out.println("path "+path);
            ZipFile zip = new ZipFile(zipFile);
            for(Enumeration entries =zip.entries();
                    entries.hasMoreElements();){
                ZipEntry entry = (ZipEntry)entries.nextElement();
                String zipEntryName = entry.getName();
                InputStream in = zip.getInputStream(entry);
                //outPath输出目录
                String outPath = (path+"\\"+zipEntryName).replaceAll("\\*", "/");;
                //System.out.println("outPath "+outPath);
                //判断路径是否存在,不存在则创建文件路径
                File file = new File(outPath.substring(0, outPath.lastIndexOf('/')));
                if(!file.exists()){
                    file.mkdirs();
                }
                //判断文件全路径是否为文件夹,如果是上面已经上传,不需要解压
                if(new File(outPath).isDirectory()){
                    continue;
                }
                //输出文件路径信息
                System.out.println(outPath);
                
                OutputStream out = new FileOutputStream(outPath);
                byte[] buf1 = new byte[1024];
                int len;
                while((len=in.read(buf1))>0){
                    out.write(buf1,0,len);
                }
                in.close();
                out.close();
                }
            System.out.println("******************解压完毕********************");
        }

       
        public static void main(String[] args) {
            try {
                unZipFiles(new File("D:\\all\\zip\\Default.adiumemoticonset.zip"));
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

  • 相关阅读:
    在浏览器地址栏按回车、F5、Ctrl+F5刷新网页的区别
    RESTful 的总结
    Mvc项目部署IIS报错:没有为请求的URL配置默认文档,并且没有在服务器设置目录浏览
    Ajax的请求方式几传参的区别
    响应式布局中的CSS相对量
    理解 ES6 语法中 yield* 关键字的作用
    理解 ES6 语法中 yield 关键字的返回值
    配置IIS Express以便通过IP地址访问调试的网站
    在IntelliJ IDEA 13中配置OpenCV的Java开发环境
    iOS UITableView获取cell的indexPath及cell内部按钮点击事件处理
  • 原文地址:https://www.cnblogs.com/IamThat/p/3037002.html
Copyright © 2011-2022 走看看