滿店香的家

          學習+實踐=進步

          使用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模板下載

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


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


          網站導航:
           
          主站蜘蛛池模板: 罗定市| 邵阳县| 屏南县| 新安县| 壶关县| 云浮市| 大化| 罗源县| 阿合奇县| 商河县| 广宁县| 瓮安县| 文登市| 诸城市| 林西县| 广昌县| 海林市| 武乡县| 沿河| 陆河县| 尉氏县| 赣州市| 永清县| 县级市| 吉安县| 石泉县| 郎溪县| 屯昌县| 石河子市| 柳江县| 大名县| 太湖县| 和政县| 公主岭市| 临桂县| 卢龙县| 泉州市| 新郑市| 金乡县| 崇仁县| 淳安县|