2014-03-19 32 views
-3

我在java中生成了.tar.gz文件。在java中生成.tar.gz文件

當我試圖打開這個,我得到異常爲「Unable to read header of that file」,它也要求一些重寫。

它也拋出誤差

無法打開文件:它不似乎是一個有效的歸檔。 我的代碼如下

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.util.zip.GZIPInputStream; 
import java.util.zip.GZIPOutputStream; 

public class Tarzlatest { 

    public static void main(String[] args) { 
     File file =new File(path); 

     String gzipFile = path; 
     String newFile = path ; 

     compressGzipFile(file, gzipFile); 

     decompressGzipFile(gzipFile, newFile); 

    } 

    private static void decompressGzipFile(String gzipFile, String newFile) { 
     try { 
      FileInputStream fis = new FileInputStream(gzipFile); 
      GZIPInputStream gis = new GZIPInputStream(fis); 
      FileOutputStream fos = new FileOutputStream(newFile); 
      byte[] buffer = new byte[1024]; 
      int len; 
      while((len = gis.read(buffer)) != -1){ 
       fos.write(buffer, 0, len); 
      } 
      //close resources 
      fos.close(); 
      gis.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    } 

    private static void compressGzipFile(File dir, String gzipFile) { 
     try { 
      File[] flist = dir.listFiles(); 
      for(int i=0; i<flist.length; i++) 
      { 
      FileInputStream fis = new FileInputStream(flist[i]); 
      FileOutputStream fos = new FileOutputStream(gzipFile); 
      GZIPOutputStream gzipOS = new GZIPOutputStream(fos); 
      byte[] buffer = new byte[1024]; 
      int len; 
      while((len=fis.read(buffer)) != -1){ 
       gzipOS.write(buffer, 0, len); 
      } 

      //close resources 
      gzipOS.close(); 
      fos.close(); 
      fis.close(); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    } 

} 
+4

請給我們展示一些代碼。 – Brian

+2

什麼是「打開」?用什麼? – fge

+3

您是如何生成存檔文件的? – Batty

回答

1

這意味着您生成名爲.tar.gz不正確。就那麼簡單。