悟心

          成功不是將來才有的,而是從決定去做的那一刻起,持續(xù)累積而成。 上人生的旅途罷。前途很遠(yuǎn),也很暗。然而不要怕。不怕的人的面前才有路。

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            93 隨筆 :: 1 文章 :: 103 評論 :: 0 Trackbacks
          package com.cn;  
            
          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);   
                  }   
              }  
            
              
          /** 壓縮一個(gè)目錄 */   
              
          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() + "/");   
                  }   
              }  
            
              
          /** 壓縮一個(gè)文件 */   
              
          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);   
                  }   
              }   
                
              
          /**測試是否可以壓縮*/  
              
          public static void main(String[] args) {   
                  ZipCompressor zc 
          = new ZipCompressor("E:\\szhzip.zip");   
                  zc.compress(
          "E:\\test");   
                  System.out.println(
          "OK.");  
              }  
          }   
          posted on 2010-11-25 16:07 艾波 閱讀(366) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 元朗区| 华阴市| 河东区| 南岸区| 东源县| 光泽县| 南部县| 宜兰市| 汝州市| 名山县| 布拖县| 凭祥市| 荔浦县| 会昌县| 随州市| 彭州市| 凤山县| 湘潭市| 高密市| 句容市| 衡水市| 堆龙德庆县| 桂东县| 明水县| 潼关县| 固镇县| 宜兰市| 海安县| 中牟县| 如皋市| 泾阳县| 株洲县| 鄂尔多斯市| 玉山县| 白银市| 梁山县| 扎囊县| 沙湾县| 曲周县| 塔河县| 邓州市|