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 陳東 閱讀(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
          就是太慢!!!請問怎樣才能快點!!!
            回復  更多評論
            

          主站蜘蛛池模板: 龙州县| 新平| 株洲市| 阿合奇县| 五华县| 通化市| 惠来县| 江川县| 曲靖市| 五原县| 碌曲县| 雅安市| 龙海市| 汽车| 兴山县| 蛟河市| 仲巴县| 福州市| 屯留县| 资中县| 博客| 闽侯县| 嘉鱼县| 眉山市| 山西省| 盘山县| 汝州市| 武穴市| 龙里县| 安宁市| 白玉县| 千阳县| 疏附县| 东光县| 抚顺县| 神池县| 阿拉善左旗| 枣阳市| 永吉县| 姚安县| 略阳县|