我有一个字节数组,我想解压缩这个字节数组。当我在代码下面运行时,它会给出;
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);