广

Java编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    Java自动解压文件实例代码

    2018-11-14 08:50:31 次阅读 稿源:互联网
    广告

    代码如下:

    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();
            }
        }
    }

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告