我需要解压缩我从互联网上下载的文本文件,压缩后大约256 kB,提取时大约2 mB。 Linux file
实用程序告诉我它"压缩数据16位"。调查一下,我发现compress
使用LZW算法。 7-zip表示"类型"该文件是" Z" (也就是它的扩展名),并且能够毫无问题地解压缩文件,因此问题不在文件中。我也知道问题不在于我如何下载文件,因为压缩字节流与打开十六进制编辑器时显示的字节相匹配。
该文件本身是来自加拿大环境部的纯文本Nowcasting矩阵文件。很遗憾,我没有足够的声誉来添加其他链接。
我一直无法找到任何内置的LZW解码器,所以我不得不求助于使用第三方库。其中有很多,但到目前为止我所尝试过的都没有能够解压缩文件。
lzwj - 抛出IndexOutOfBoundsException: Invalid index 40223, size is 256
。 (指数本身并不重要)。但是,默认代码字长度为12.我已将源代码更改为16,因为file
的输出似乎表明(我在这个假设中是错误的吗?),但它会抛出相同的异常(错误中显示的索引是代码字长度为16)。
This algorithm也会抛出索引越界异常。但是,由于它似乎是由学生为作业而写的,所以无论如何我都不习惯使用它。
遗憾的是, This library只有compress
方法,并且不进行解压缩。
7-zip JBinding似乎是我最好的选择,但不幸的是它似乎无法在Android上运行,无论是使用全平台jar还是仅使用ARM的jar。
我遇到了更多的图书馆和个人类源文件,但他们没有与之相关的许可证,而且我避免使用受版权保护的代码。
任何人都可以帮我找出任何这些错误的原因,或提供替代解决方案吗?