如何在Java中读取以十六进制二进制格式写入文件的xml压缩数据?

时间:2019-02-28 08:31:09

标签: java

我遇到一种情况,我在文件中具有十六进制二进制格式的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;
}

您能建议我解决方案吗?

0 个答案:

没有答案