gpt4 book ai didi

java - 从 *.gz 扩展名中提取文件

转载 作者:行者123 更新时间:2023-12-02 04:49:16 26 4
gpt4 key购买 nike

我已成功从 *.tgz 中提取 *.gz,现在我不知道如何从 *.tgz 中实际提取最终文件>.

有一些选项使用自定义包,但这不适合我,我只需要使用标准 Java 包

我尝试使用与 *.tgz 相同的函数来 *.gz 但它不起作用。

java.util.zip.ZipException: Not in GZIP format 1.gz

这是提取 *.tgz 文件的函数。

public String ExtractFile(String path) {
try {
File newFile = new File(this.getFullPathWithoutExtension(path) + ".gz");

GZIPInputStream gStream;
FileOutputStream outStream;
try (FileInputStream fileStream = new FileInputStream(path)) {
gStream = new GZIPInputStream(fileStream);
outStream = new FileOutputStream(newFile);
byte[] buf = new byte[1024];
int len;
while ((len = gStream.read(buf)) > 0) {
outStream.write(buf, 0, len);
}
}
gStream.close();
outStream.close();

newFile.createNewFile();

return newFile.getPath();

} catch (Exception e) {
System.out.print(e);
}

return null;
}

TL;博士; *.tgz 文件提取到 *.gz 文件,但是 *.gz 文件无法提取。

最佳答案

.tgz 文件通常不会提取到 .gz 文件 - 它会提取到 .tar 文件。 (.gz 文件经过 gzip 压缩;.tar 文件是包含多个文件的未压缩存档;.tgz 是一个 。 tar 文件,然后被 gzip 压缩 - 您已经“撤消”了 gzip 压缩。)

我不认为 Java 的标准库中有任何东西可以处理 tar 文件 - 所以你要么必须重新审视你的“我不能使用标准库中没有的东西”的决定,要么自己重新实现它。 file format is easily available如果您决定这样做。

关于java - 从 *.gz 扩展名中提取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29390404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com