Java on Line

          和java的日子!

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            8 隨筆 :: 0 文章 :: 28 評論 :: 0 Trackbacks
          import java.io.File;
          import java.io.FileInputStream;
          import java.io.FileNotFoundException;
          import java.io.FileOutputStream;
          import java.io.IOException;
          import java.util.zip.ZipEntry;
          import java.util.zip.ZipInputStream;
          import java.util.zip.ZipOutputStream;

          /**
           * 使用java核心類庫打包、解包zip文件,不足之處在于壓縮中文名的文件時,在壓縮包內(nèi)中文字符是亂碼,
           * 在windows下解壓后編碼正常顯示中文,而其他系統(tǒng)下則不能正常還原;
           
          */

           
          public class TestZip {

              
          /**
               * 定義解壓縮zip文件的方法
               * 
          @param zipFileName
               * 
          @param outputDirectory
               
          */

              
          public void unzip(String zipFileName, String outputDirectory) {
                  
          try {
                      ZipInputStream in 
          = new ZipInputStream(new FileInputStream(zipFileName));
                      
          //獲取ZipInputStream中的ZipEntry條目,一個zip文件中可能包含多個ZipEntry,
                      
          //當getNextEntry方法的返回值為null,則代表ZipInputStream中沒有下一個ZipEntry,
                      
          //輸入流讀取完成;
                      ZipEntry z = in.getNextEntry();
                      
          while (z != null{
                          System.out.println(
          "unziping " + z.getName());
                          
          //創(chuàng)建以zip包文件名為目錄名的根目錄
                          File f = new File(outputDirectory);
                          f.mkdir();
                          
          if (z.isDirectory()) {
                              String name 
          = z.getName();
                              name 
          = name.substring(0, name.length() - 1);
                              System.out.println(
          "name " + name);
                              f 
          = new File(outputDirectory + File.separator + name);
                              f.mkdir();
                              System.out.println(
          "mkdir " + outputDirectory + File.separator + name);
                          }

                          
          else {
                              f 
          = new File(outputDirectory + File.separator + z.getName());
                              f.createNewFile();
                              FileOutputStream out 
          = new FileOutputStream(f);
                              
          int b;
                              
          while ((b = in.read()) != -1{
                                  out.write(b);
                              }

                              out.close();
                          }

                          
          //讀取下一個ZipEntry
                          z = in.getNextEntry();
                      }

                      in.close();
                  }

                  
          catch (Exception e) {
                      
          // TODO 自動生成 catch 塊
                      e.printStackTrace();
                  }

              }


              
          public static void main(String[] args) throws Exception{
                  TestZip t 
          = new TestZip();
                  t.unzip(
          "c:/a.zip""c:/b");
                  
          //解壓C盤下的a.zip文件放到C盤下的b文件夾里
                  
          //一定要注意a.zip文件要經(jīng)java程序壓縮出來的文件,這個程序才可以解壓
              }

          }
          posted on 2007-08-24 16:29 陳東 閱讀(3295) 評論(3)  編輯  收藏 所屬分類: Java基礎

          評論

          # re: 用java解壓文件夾 2008-07-02 19:59 1111111
          錯誤的
            回復  更多評論
            

          # re: 用java解壓文件夾 2008-10-06 19:41 re
          非常好用,頂  回復  更多評論
            

          # re: 用java解壓文件夾 2009-02-13 12:25 huzheng
          就是太慢!!!請問怎樣才能快點!!!
            回復  更多評論
            

          主站蜘蛛池模板: 会同县| 开原市| 通辽市| 方山县| 开封县| 嘉鱼县| 泾阳县| 重庆市| 溆浦县| 靖西县| 盱眙县| 巴林右旗| 亚东县| 莲花县| 定兴县| 大渡口区| 宝鸡市| 分宜县| 册亨县| 宝坻区| 中阳县| 田林县| 潼南县| 交城县| 宝丰县| 旬阳县| 本溪市| 建始县| 大方县| 佛学| 双辽市| 剑川县| 江油市| 海晏县| 安龙县| 牟定县| 龙门县| 广饶县| 五原县| 民勤县| 宜州市|