滿店香的家

          學習+實踐=進步

          使用commons-compress包對tar.gz文件進行解壓處理

              想使用commons-compress-1.4.1.jar對tar.gz文件進行處理,上網找半天,別人寫的都很費勁,看了看樣例,自己寫了一個方法。
           /**
            * 解壓tar.gz文件
            * tar文件只是把多個文件或文件夾打包合成一個文件,本身并沒有進行壓縮。gz是進行過壓縮的文件。
            * @param dir
            * @param filepath
            * @throws Exception
            */
           public static void deGzipArchive(String dir, String filepath)
             throws Exception {
            final File input = new File(filepath);
            final InputStream is = new FileInputStream(input);
            final CompressorInputStream in = new GzipCompressorInputStream(is, true);
            TarArchiveInputStream tin = new TarArchiveInputStream(in);
            TarArchiveEntry entry = tin.getNextTarEntry();
            while (entry != null) {
             File archiveEntry = new File(dir, entry.getName());
             archiveEntry.getParentFile().mkdirs();
             if (entry.isDirectory()) {
              archiveEntry.mkdir();
              entry = tin.getNextTarEntry();
              continue;
             }
             OutputStream out = new FileOutputStream(archiveEntry);
             IOUtils.copy(tin, out);
             out.close();
             entry = tin.getNextTarEntry();
            }
            in.close();
            tin.close();
           }

          遺留問題:

           tar解壓tar.gz文件時,中文文件夾有亂碼
           研究發現commpress包解壓時,TarArchiveInputStream類對中文未做處理,進一步跟蹤,第一層是

          utf8,正確,往下取,需要包括子文件夾,子文件,涉及到"/"等符號的切割,這個地方未考慮中文
          據說ant沒問題

          posted on 2012-06-15 12:12 滿店香 閱讀(6824) 評論(1)  編輯  收藏

          Feedback

          # re: 使用commons-compress包對tar.gz文件進行解壓處理 2012-06-15 12:16 ppt模板下載

          可以去加壓后再看看的  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 志丹县| 宜章县| 大关县| 微博| 栖霞市| 紫金县| 高雄市| 子洲县| 托克托县| 固原市| 南安市| 延津县| 屯留县| 肇东市| 塔河县| 汪清县| 泰安市| 四会市| 衡南县| 南丰县| 襄樊市| 闵行区| 抚宁县| 紫云| 万州区| 巩义市| 常熟市| 酒泉市| 浏阳市| 嘉善县| 大名县| 乐安县| 云龙县| 徐水县| 峨眉山市| 麦盖提县| 登封市| 奉节县| 临洮县| 东乌| 大城县|