如何解压缩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