gpt4 book ai didi

java - 从 zipFile 获取 inputStream 然后添加到另一个 zipFile 获取空指针异常

转载 作者:搜寻专家 更新时间:2023-11-01 07:56:05 30 4
gpt4 key购买 nike

我试图从 zip 文件获取输入流,然后将其添加到另一个 zip 文件,但它抛出空指针异常。这是我的代码。

       ZipParameters parameters = new ZipParameters();
ZipFile newZipFile = new ZipFile(new File(CacheDir, "temp.card"));
File temp = new File(CacheDir, "tempFile");
if (!temp.exists()) {
temp.createNewFile();
}
newZipFile.createZipFile(temp, parameters);
if(newZipFile.getFile().exist()){
if (string != null) {
inputStream = zipFile.getInputStream(zipFile.getFileHeader(string));
}
if (inputStream != null) {
newZipFile.addStream(inputStream,parameters);
}
}

此范围内的所有对象都不为空。但我在这里遇到异常:

newZipFile.addStream(inputStream,parameters);

日志:

12-14 06:27:43.891: W/System.err(2197): net.lingala.zip4j.exception.ZipException: input file is null
12-14 06:27:43.891: W/System.err(2197): at net.lingala.zip4j.io.CipherOutputStream.putNextEntry(CipherOutputStream.java:71)
12-14 06:27:43.895: W/System.err(2197): at net.lingala.zip4j.io.DeflaterOutputStream.putNextEntry(DeflaterOutputStream.java:45)
12-14 06:27:43.895: W/System.err(2197): at net.lingala.zip4j.zip.ZipEngine.addStreamToZip(ZipEngine.java:230)
12-14 06:27:43.895: W/System.err(2197): at net.lingala.zip4j.core.ZipFile.addStream(ZipFile.java:395)

最佳答案

追根溯源,我在zip4j的源码中发现

if (!zipParameters.isSourceExternalStream() && file == null) {
throw new ZipException("input file is null");
}

所以快速解决方法是绕过检查

parameters.setSourceExternalStream(true);

P.S.:我不知道 externalStream 是什么意思,但它有效 😉

关于java - 从 zipFile 获取 inputStream 然后添加到另一个 zipFile 获取空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27467016/

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