题
有人可以告诉我如何解压缩字节阵列吗?
这是我的代码。我已经尝试了很久了,它给了我一个 DataFormatException
.
byte bArray[] = new byte[tSizeOfTile];
input.read(bArray, offset, limit);
byte[] unComp = new byte[bArray.length + 100];
Inflater inflate = new Inflater();
inflate.setInput(bArray);
inflate.inflate(unComp, offset, bArray.length + 100);
inflate.end();
解决方案
好吧,一个确定的问题是您显然正在使用 InputStream.read
不检查返回值。这意味着您可能读取的数据比预期的要少。
另外,您正在尝试膨胀 unComp
从 偏移,但最大长度与 unComp.length
. 。这意味着是否 offset
除了0之外,您可能正在尝试通过数组的末端编写。
你是说偏移是指 输入 大批?我不相信这就是意味着什么。您应该使用 setInput
到 只要 提供输入数据。
但是,您可以通过使用使所有这些更容易 InflaterInputStream
而不是处理 Inflate
你自己。
不隶属于 StackOverflow