我遇到一种情况,我在文件中具有十六进制二进制格式的XML压缩数据,并且我想对该数据解压缩。 这是压缩的十六进制42字节。
String hexadecimaldata = "2002a4050240d044100041d084250a42c0040101080201144e1102013c460804410459441024311e4310"
String hexArray[] = hexadecimaldata.split("(?<=\\G..)");
for (int i = 0; i < 42; i++) {
arr[i] = (byte) Integer.parseInt(hexArray[i + 2], 16);
}
byte[] output = decompressorr.decompressByteArray(arr);
并且我正在使用充气机读取此压缩的XML数据,但出现错误:
java.util.zip.ZipException:不正确的标头检查
这是我读取XML压缩字节[]数据的代码。
public byte[] decompressByteArray(byte[] bytes) {
byte[] output = null;
try {
Inflater inflater = new Inflater(true);
inflater.setInput(bytes);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(bytes.length);
byte[] buffer = new byte[1024];
while (!inflater.finished()) {
int count = inflater.inflate(buffer);
outputStream.write(buffer, 0, count);
}
outputStream.close();
output = outputStream.toByteArray();
} catch (Exception ex) {
ex.printStackTrace();
}
return output;
}
您能建议我解决方案吗?