在Java中解压缩blob

时间:2018-04-15 14:57:23

标签: java layout-inflater

我正在尝试从使用java中的DeflaterOutputStream类压缩的blob中提取数据。当我使用InflaterOutputStream提取信息时,我最终部分提取数据,其余信息显示为垃圾值。

我无法弄清楚下面提到的代码段的问题。在这方面的任何援助将非常感谢。

byte[] data = hexStringToByteArray("blob content");
ByteArrayOutputStream outputstream= new ByteArrayOutputStream();
Inflater decompresser = new Inflater(true);
InflaterOutputStream inflaterOutputStream = new InflaterOutputStream(outputstream, decompresser);
inflaterOutputStream.write(data, 11, data.length - 11);
inflaterOutputStream.close();
String s = new String(outputstream.toByteArray());
System.out.println("--------output----------");
System.out.println(s);

1 个答案:

答案 0 :(得分:0)

最后我能够解决这个问题。根据提供的建议,我考虑不将信息提取到字符串。我最终使用pega提供的直接类来提取这些信息。以下是可能正在寻找解决方案的人员的工作代码段。

ByteArrayOutputStream stream2 = new ByteArrayOutputStream();
Inflater decomp = new Inflater(true);

InflaterOutputStream inflaterOutputStream = new InflaterOutputStream(stream2, decomp);
inflaterOutputStream.write(data,11,data.length-11);
inflaterOutputStream.close();

DirectStream dsv7 = new DirectStream(stream2.toByteArray(), data.length, oEnvAdapter);

System.out.println(dsv7.toString());
System.out.println(dsv7.dump());