Commons Compress 解压 Zip 报错 'Unsupported compression method 95 (XZ)' 如何解决
这个错误是因为你的zip文件中含有XZ压缩的文件,而Commons Compress库不支持XZ压缩方法。解决办法是使用支持XZ压缩的库来解压这个文件,比如Apache Commons Compress的XZ库。
你可以使用以下代码示例来解决这个问题:
import org.apache.commons.compress.archivers.ArchiveEntry;
import org.apache.commons.compress.archivers.ArchiveInputStream;
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
import org.apache.commons.compress.compressors.xz.XZCompressorInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class UnzipXZFile {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream('input.zip');
FileOutputStream fos = new FileOutputStream('output');
ArchiveInputStream ais = new ZipArchiveInputStream(fis);
ArchiveEntry entry;
while ((entry = ais.getNextEntry()) != null) {
if (!entry.isDirectory()) {
if (entry.getName().endsWith('.xz')) {
XZCompressorInputStream xzIn = new XZCompressorInputStream(ais);
byte[] buffer = new byte[1024];
int length;
while ((length = xzIn.read(buffer)) != -1) {
fos.write(buffer, 0, length);
}
xzIn.close();
} else {
// 处理其他类型的压缩文件
}
}
}
ais.close();
fos.close();
System.out.println('解压完成');
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这个示例中,我们使用ZipArchiveInputStream来读取zip文件中的条目,如果条目的后缀是'.xz',我们就使用XZCompressorInputStream来解压该条目。你需要将'input.zip'替换为你的zip文件路径,将'output'替换为你想要输出的文件路径。
这样,你就可以使用Apache Commons Compress的XZ库来解压含有XZ压缩文件的zip文件了。
原文地址: https://www.cveoy.top/t/topic/GnF 著作权归作者所有。请勿转载和采集!