Java on Line

          和java的日子!

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            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文件,不足之處在于壓縮中文名的文件時,在壓縮包內中文字符是亂碼,
           * 在windows下解壓后編碼正常顯示中文,而其他系統下則不能正常還原;
           
          */

           
          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());
                          
          //創建以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文件要經java程序壓縮出來的文件,這個程序才可以解壓
              }

          }
          posted on 2007-08-24 16:29 陳東 閱讀(3302) 評論(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
          就是太慢!!!請問怎樣才能快點!!!
            回復  更多評論
            

          主站蜘蛛池模板: 龙井市| 威海市| 泸州市| 元氏县| 壶关县| 青川县| 会理县| 虞城县| 永靖县| 通化县| 孝昌县| 江安县| 仪陇县| 弥渡县| 永靖县| 台中县| 吴堡县| 金阳县| 丰都县| 咸丰县| 玉山县| 东光县| 科技| 高要市| 厦门市| 佛教| 剑川县| 洞头县| 马关县| 大石桥市| 琼中| 绥阳县| 西乌| 将乐县| 五华县| 荣昌县| 灵台县| 灵璧县| 加查县| 临高县| 炉霍县|