gpt4 book ai didi

java.util.zip.ZipException : invalid literal/length code

转载 作者:行者123 更新时间:2023-11-30 10:52:07 25 4
gpt4 key购买 nike

我已经解压了 3 个文档(1 个 .docx 和 2 个 .pdf)的 base64 字符串,我正在尝试将这些字符串转换回它们的文档。这是我正在尝试的代码。此代码适用于 .docx 字符串,但不适用于 .pdf 字符串。

public static void main(String[] args) throws IOException, DataFormatException {
String outputFilePath = "document.pdf";
File file = new File(outputFilePath);
FileOutputStream fos = new FileOutputStream(file);
String str = FileUtils.readFileToString(new File(file_name_containing_compressed_base64_string), "utf-8");
byte[] zipData = Base64.decodeBase64(str);
GZIPInputStream zi = new GZIPInputStream(new ByteArrayInputStream(zipData));
IOUtils.copy(zi, fos);

fos.close();
zi.close();

}

我在行 IOUtils.copy(zi, fos); 上遇到异常,一个 .pdf 字符串的异常是

java.util.zip.ZipException: invalid literal/length code
at java.util.zip.InflaterInputStream.read(Unknown Source)
at java.util.zip.GZIPInputStream.read(Unknown Source)
at java.io.FilterInputStream.read(Unknown Source)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1792)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1769)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:1744)
at com.fileHandling.FileOutput.main(FileOutput.java:126)

第二个 .pdf 字符串的异常(exception)是

java.util.zip.ZipException: invalid distance too far back
at java.util.zip.InflaterInputStream.read(Unknown Source)
at java.util.zip.GZIPInputStream.read(Unknown Source)
at java.io.FilterInputStream.read(Unknown Source)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1792)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1769)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:1744)
at com.fileHandling.FileOutput.main(FileOutput.java:126)

请告诉我这些异常的原因以及如何解决这些异常

最佳答案

那么你处理数据的路径是:

  • file_name_containing_decompressed_base64_string

  • => decodeBase64 => zipData(是否压缩?)

- => GZIPInputStream : 你想解压已经解压的?

  • 复制为PDF

GZIPInputStream 用于解压缩传入的 InputStream。

1 个简单的解决方案:我会删除解压缩,但与名称不一致:zipdata

2 step by step: 一步一步做一个程序:编码/解码,压缩/解压,每一步检查,并打印一些println/trace

关于此的其他一些帖子:Java: How do I convert InputStream to GZIPInputStream?

关于java.util.zip.ZipException : invalid literal/length code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34478449/

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