如何解压缩gzip数据?

时间:2016-10-18 13:47:27

标签: java arrays gzip

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

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

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

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

来自网络服务或我的解压缩方法的数据是否有问题?

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并将其写入名为&#34; test.gzip&#34;的文件中。现在我可以使用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);

0 个答案:

没有答案