疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

java解压zip,windows环境下测试过


 

 Java代码
   
    1.package com.file.compress;
   
    2.
   
    3.import java.io.BufferedInputStream;
   
    4.import java.io.BufferedOutputStream;
   
    5.import java.io.File;
   
    6.import java.io.FileOutputStream;
   
    7.import java.util.Enumeration;
   
    8.import java.util.zip.ZipEntry;
   
    9.import java.util.zip.ZipFile;
   
    10.
   
    11.
   
    12./**
   
    13. * zip 解压
   
    14. *
   
    15. * @author pansaobin
   
    16. *
   
    17. */
   
    18.public class UnZip {
   
    19.
   
    20.    /**
   
    21.     * @param args
   
    22.     */
   
    23.    static final int BUFFER = 2048;
   
    24.
   
    25.    public static void uncompress(String pathName,String fileName) throws Exception{
   
    26.
   
    27.        if (!pathName.endsWith("/")) {
   
    28.            pathName += "/";
   
    29.        }
   
    30.        String totalName = pathName + fileName;
   
    31.        System.out.println("fileName: "+ totalName);
   
    32.        ZipFile zipFile = new ZipFile(totalName);
   
    33.        Enumeration enu = zipFile.entries();
   
    34.
   
    35.        while (enu.hasMoreElements()) {
   
    36.            ZipEntry zipEntry = (ZipEntry) enu.nextElement();
   
    37.            if (zipEntry.isDirectory()) {
   
    38.                new File(totalName + zipEntry.getName())。mkdirs();
   
    39.                continue;
   
    40.            }
   
    41.            BufferedInputStream bis = new BufferedInputStream(zipFile
   
    42.                    .getInputStream(zipEntry));
   
    43.            File file = new File(totalName + zipEntry.getName());
   
    44.            File parent = file.getParentFile();
   
    45.            if (parent != null && !parent.exists()) {
   
    46.                parent.mkdirs();
   
    47.            }
   
    48.            FileOutputStream fos = new FileOutputStream(file);
   
    49.            BufferedOutputStream bos = new BufferedOutputStream(fos, BUFFER);
   
    50.
   
    51.            int count;
   
    52.            byte[] array = new byte[BUFFER];
   
    53.            while ((count = bis.read(array, 0, BUFFER)) != -1) {
   
    54.                bos.write(array, 0, BUFFER);
   
    55.            }
   
    56.            bos.flush();
   
    57.            bos.close();
   
    58.            bis.close();
   
    59.        }
   
    60.    }
   
    61.
   
    62.
   
    63.
   
    64.    public static void main(String[] args) {
   
    65.        try {
   
    66.            //String filename = "E:/test/commons-collections-3.1.jar.zip";
   
    67.            // 下载到本地的哪个文件夹
   
    68.            /*String uploadDirectory = BaoBiaoProperties
   
    69.                    .getProperty("uploadDirectory");
   
    70.            if (!uploadDirectory.endsWith("/")) {
   
    71.                uploadDirectory += "/";
   
    72.            }
   
    73.            // 下载到的本地路径
   
    74.            String path = System.getProperty("user.dir") + uploadDirectory;*/
   
    75.
   
    76.
   
    77.            String pathName = "G:/test";
   
    78.            //String fileName = "E:/test/commons-collections-3.1.jar.zip";
   
    79.            String fileName = "a.zip";
   
    80.            uncompress(pathName,fileName);
   
    81.        } catch (Exception e) {
   
    82.            e.printStackTrace();
   
    83.        }
   
    84.    }
   
    85.}