我正在尝试从使用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);
答案 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());