无法解压缩Java

时间:2020-07-06 17:59:15

标签: java maven merge zip zip4j

我有大量数据,需要将其上传到github。所以我决定使用分割的zip文件,并让程序合并它们,然后解压缩它们。

private static void mergeSplitFiles(String path) {
        System.out.println("Merging data from: " + path);

        try {
            ZipFile zip = new ZipFile(path + "/train.zip");
            zip.mergeSplitFiles(new File(ORIGINAL_DATA + ".zip"));
        } catch (ZipException e) {
            e.printStackTrace();
        }
    }

合并看起来很棒,但是后来我尝试像这样解压缩:

private static void uncompressData(String path) {
        System.out.println("Uncompressing data from: " + path);
        new File(path).mkdir();

        try {
            ZipFile zip = new ZipFile(path + ".zip");
            zip.extractAll(path);

        } catch (ZipException e) {
            e.printStackTrace();
        }
    }

此代码适用于手动压缩的数据,但无法合并。

试图手动解压缩合并的文件,它崩溃了,半路给我一个错误。我在maven中使用最新版本:

        <dependency>
            <groupId>net.lingala.zip4j</groupId>
            <artifactId>zip4j</artifactId>
            <version>2.6.1</version>
        </dependency>

我得到的错误是:

net.lingala.zip4j.exception.ZipException: Could not read corresponding local file header for file header: 2964082/61083998.txt

找不到任何东西

1 个答案:

答案 0 :(得分:0)

显然,当使用该库创建分割文件时,它可以工作。用7zip或WinRar创建的文件无效。不得不修改程序以从原始日志中分割出的zip文件,而原始日志无法上传到Github,因此必须考虑到这一点。

Havent找到了手动(或其他库)生成的拆分zip文件的解决方案