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 + "懚嵼偟側偄");  
                  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 閱讀(264) 評論(0)  編輯  收藏 所屬分類: java

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          db2

          dos

          Groovy

          Hibernate

          java

          WAS

          web application

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 克东县| 伊宁市| 安西县| 芒康县| 曲阜市| 门头沟区| 含山县| 洱源县| 加查县| 巴彦淖尔市| 泰和县| 邵阳市| 平果县| 石阡县| 汕头市| 航空| 遂溪县| 睢宁县| 开江县| 武平县| 陇西县| 大渡口区| 长岭县| 瓮安县| 邳州市| 元谋县| 遂昌县| 长顺县| 晋州市| 台安县| 安阳市| 商水县| 甘孜县| 中西区| 涿鹿县| 澎湖县| 两当县| 汉源县| 石首市| 西藏| 大足县|