如何解压缩gzip数据?

我有一个字节数组,我想解压缩这个字节数组。 当我运行下面给出的代码时;

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

我从soap web服务中获取这个字节数组。 当我从soap UI调用这个web服务时,它返回;

<size>491520</size>
<studentData>
    <dataContent>Uy0xMDAwMF90MTAwMDAtVXNlciBTZWN1cml0eSBB........</dataContent>
</studentData>

数据来自Web服务或我的解压缩方法有问题吗?

public static byte[] decompress(final byte[] input) throws Exception{

    try (ByteArrayInputStream bin = new ByteArrayInputStream(input);
            GZIPInputStream gzipper = new GZIPInputStream(bin)) {
        byte[] buffer = new byte[1024];
        ByteArrayOutputStream out = new ByteArrayOutputStream();

        int len;
        while ((len = gzipper.read(buffer)) > 0) {
            out.write(buffer, 0, len);
        }

        gzipper.close();
        out.close();
        return out.toByteArray();
    }
}

编辑:我解码base64并将其写入名为“test.gzip”的文件。 现在我可以用7zip提取这个文件,我可以看到所有的学生文件没有任何问题。

String encoded = Base64.getEncoder().encodeToString(studentData.getDataContent());
byte[] decoded = Base64.getDecoder().decode(encoded);

FileOutputStream fos = new FileOutputStream("test.gzip");
fos.write(decoded);
fos.close();

但是当我尝试解压这个解码文件时,它仍然会给出相同的错误;

decompress(decoded);
链接地址: http://www.djcxy.com/p/92423.html

上一篇: How to decompress gzip data?

下一篇: Decompressing Bitmap from Base64 and GZIP