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 閱讀(270) 評論(0)  編輯  收藏 所屬分類: java

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

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          db2

          dos

          Groovy

          Hibernate

          java

          WAS

          web application

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 怀仁县| 阿勒泰市| 滕州市| 长岭县| 阳山县| 牟定县| 平武县| 沂水县| 仁布县| 丰顺县| 基隆市| 南汇区| 株洲市| 当雄县| 临漳县| 吕梁市| 临清市| 公安县| 蓬安县| 防城港市| 乃东县| 湘乡市| 姜堰市| 沙湾县| 前郭尔| 库车县| 北流市| 五华县| 赞皇县| 横山县| 靖宇县| 江口县| 光山县| 游戏| 屏山县| 德昌县| 肃南| 石城县| 泸州市| 温宿县| 大厂|