[英]How to decompress a byte Array in Java
有人可以告诉我如何解压缩字节数组吗?
这是我的代码。 我已经尝试了很久了,它给了我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
,您可以使所有这些工作变得容易Inflate
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.