1
回答
Java 解压GZip压缩文件问题
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
        用Commons Compress解压GZip压缩文件,获取TarArchiveEntry后isFile方法返回true,可是getFile方法却返回false,请问这是为什么呢?谢谢
package com.company;

import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;

public class Main {
    public static void main(String[] args) {
        // write your code here
        String filename = "G:\\00.tar.gz";
        File file = new File(filename);
        unzip(file);
    }

    public static void unzip(File file) {
        try {
            TarArchiveInputStream tarIn = new TarArchiveInputStream(new GZIPInputStream(new BufferedInputStream(new FileInputStream(file))));
            TarArchiveEntry entry = null;
            while ((entry = tarIn.getNextTarEntry()) != null) {
                if (entry.isDirectory()) {//是目录
                    System.out.println("目录:" + entry.getName());
                } else if (entry.getName().endsWith("gz")) {
                    System.out.println("压缩文件:" + entry.getName());
                    System.out.println(entry.isFile());
                    System.out.println("压缩文件:" + entry.getFile());
                    System.out.println("压缩文件:" + entry.getSize());
                    //unzip(entry.getFile());
                } else {//文件
                    System.out.println("数据文件:" + entry.getName());
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}



举报
JokerLi
发帖于3年前 1回/473阅

以下是问题补充:

  • @JokerLi :补充一下,我想要达到的效果是直接读取压缩文件的内容,而不是解压后再读文件,同时考虑压缩包中还有压缩包的情况。 (3年前)
顶部