zip file

          /*==============================================================================
           *ZIP嶌惉僣乕儖
           =============================================================================*/
          import java.io.BufferedInputStream;
          import java.io.File;
          import java.io.FileInputStream;
          import java.io.FileOutputStream;
          import java.util.zip.CRC32;
          import java.util.zip.CheckedOutputStream;
           
          import java.util.zip.ZipEntry;
          import java.util.zip.ZipOutputStream;
           
          public class ZipCompressor {
              static final int BUFFER = 8192;
           
              private File zipFile;  
           
              public ZipCompressor(String pathName) {
                  zipFile = new File(pathName);  
              }  
           
              public void compress(String srcPathName) {  
                  File file = new File(srcPathName);  
                  if (!file.exists())  
                      throw new RuntimeException(srcPathName + "懚嵼偟側(cè)偄");  
                  try {  
                      FileOutputStream fileOutputStream = new FileOutputStream(zipFile);  
                      CheckedOutputStream cos = new CheckedOutputStream(fileOutputStream,  
                              new CRC32());  
                      ZipOutputStream out = new ZipOutputStream(cos);  
                      String basedir = "";  
                      compress(file, out, basedir);  
                      out.close();  
                  } catch (Exception e) {  
                      throw new RuntimeException(e);  
                  }  
              }  
           
              private void compress(File file, ZipOutputStream out, String basedir) {  
                  /* 僨傿儗僋僩儕偲偐僼傽僀儖偲偐偦傟偧傟張棟偟傑偡 */ 
                  if (file.isDirectory()) {  
                      System.out.println("埑弅丗" + basedir + file.getName());  
                      this.compressDirectory(file, out, basedir);  
                  } else {  
                      System.out.println("埑弅丗" + basedir + file.getName());  
                      this.compressFile(file, out, basedir);  
                  }  
              }  
           
              /** 僨傿儗僋僩儕傪埑弅 */ 
              private void compressDirectory(File dir, ZipOutputStream out, String basedir) {  
                  if (!dir.exists())  
                      return;  
           
                  File[] files = dir.listFiles();  
                  for (int i = 0; i < files.length; i++) {  
                      compress(files[i], out, basedir + dir.getName() + "/");  
                  }  
              }  
           
              /** 暥審傪埑弅 */ 
              private void compressFile(File file, ZipOutputStream out, String basedir) {  
                  if (!file.exists()) {  
                      return;  
                  }  
                  try {  
                      BufferedInputStream bis = new BufferedInputStream(  
                              new FileInputStream(file));  
                      ZipEntry entry = new ZipEntry(basedir + file.getName());  
                      out.putNextEntry(entry);  
                      int count;  
                      byte data[] = new byte[BUFFER];  
                      while ((count = bis.read(data, 0, BUFFER)) != -1) {  
                          out.write(data, 0, count);  
                      }  
                      bis.close();  
                  } catch (Exception e) {  
                      throw new RuntimeException(e);  
                  }  
              }  

           

          posted on 2009-03-04 18:48 koradji 閱讀(270) 評論(0)  編輯  收藏 所屬分類: java

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          db2

          dos

          Groovy

          Hibernate

          java

          WAS

          web application

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 丁青县| 嘉义县| 博客| 崇义县| 依兰县| 宁德市| 浙江省| 应城市| 塔河县| 佛山市| 拉萨市| 松潘县| 乌什县| 开鲁县| 辽阳县| 文化| 浦城县| 南通市| 鞍山市| 武隆县| 罗田县| 安泽县| 墨玉县| 甘洛县| 鞍山市| 普安县| 河西区| 丘北县| 临沂市| 伊宁县| 信阳市| 石泉县| 湖口县| 红原县| 中西区| 乐清市| 凤台县| 神农架林区| 朔州市| 朝阳县| 海安县|