繁体   English   中英

如何在Java中解压缩字节数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM