在java中生成.tar.gz文件

时间:2014-03-19 12:48:56

标签: java

我在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();
        }

    }

}

1 个答案:

答案 0 :(得分:1)

这表示您错误地生成了 .tar.gz 。就这么简单。

相关问题