blgaici1 发表于 2013-2-1 11:21:00

java zip 压缩文件

1.import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FilenameFilter;import java.io.InputStream;import java.util.Enumeration;import java.util.zip.ZipEntry;import java.util.zip.ZipFile;import java.util.zip.ZipOutputStream;public class ZipUtils {    public static boolean zip(String outputFileName, String inputFileName) {      ZipOutputStream out;      try {            out = new ZipOutputStream(new FileOutputStream(outputFileName));            zip(out, new File(inputFileName), "");            out.close();            return true;      } catch (Exception e) {            e.printStackTrace();            return false;      }    }    public static void zip(String inputFileName) {      String fileName = inputFileName.substring(0, inputFileName.lastIndexOf("/"));      zip(fileName + ".zip", inputFileName);    }    private static void zip(ZipOutputStream out, File f, String base) throws Exception {      if (f.isDirectory()) {            File[] fl = f.listFiles(new FilenameFilter(){@Overridepublic boolean accept(File dir, String name) {// TODO Auto-generated method stubboolean flag = true;if(dir!=null&&dir.getPath().split("/").equals(".svn")){flag= false;}if(dir!=null&&dir.getPath().split("/").equals("logs")){flag= false;}if(dir!=null&&dir.getPath().split("/").equals("lib")){flag= false;}    if(flag){    System.out.println(dir+"-----"+name);    }return flag;}                        });            out.putNextEntry(new ZipEntry(base + "/"));            base = base.length() == 0 ? "" : base + "/";            for (int i = 0; i < fl.length; i++) {                zip(out, fl, base + fl.getName());            }      } else {            out.putNextEntry(new ZipEntry(base));            FileInputStream in = new FileInputStream(f);            int b;            // System.out.println(base);            while ((b = in.read()) != -1) {                out.write(b);            }            in.close();      }    }    public static void unzip(String outputFileName) {      int index = outputFileName.lastIndexOf(".");      String inputFileName = outputFileName.substring(0, index);      unzip(outputFileName, inputFileName);    }    public static void unzip(String zipFilename, String outputDirectory) {      try {            File outFile = new File(outputDirectory);            if (!outFile.exists()) {                outFile.mkdirs();            }            ZipFile zipFile = new ZipFile(zipFilename);            Enumeration en = zipFile.entries();            ZipEntry zipEntry = null;            while (en.hasMoreElements()) {                zipEntry = (ZipEntry) en.nextElement();                if (zipEntry.isDirectory()) {                  // mkdir directory                  String dirName = zipEntry.getName();                  dirName = dirName.substring(0, dirName.length() - 1);                  File f = new File(outFile.getPath() + "/" + dirName);                  f.mkdirs();                } else {                  // unzip file                  File f = new File(outFile.getPath() + "/" + zipEntry.getName());                  f.createNewFile();                  InputStream in = zipFile.getInputStream(zipEntry);                  FileOutputStream out = new FileOutputStream(f);                  int c;                  byte[] by = new byte;                  while ((c = in.read(by)) != -1) {                        out.write(by, 0, c);                  }                  out.close();                  in.close();                }            }      } catch (Exception e) {            e.printStackTrace();      }    }      public static void main(String[] args){    System.currentTimeMillis();    zip("/home/liguojun/wowowo.zip","/home/liguojun/workspace/JShop/WebRoot/js");    //zip("/home/liguojun/workspace/JShop/WebRoot/js");    }}
页: [1]
查看完整版本: java zip 压缩文件