为什么可以';我能在Android上用Java解压这个LZW文件吗?

为什么可以';我能在Android上用Java解压这个LZW文件吗?,java,android,compression,Java,Android,Compression,我需要解压一个从互联网上下载的文本文件,大约256KB压缩,解压时为2MB。Linux文件实用程序告诉我它是“压缩数据16位”。查看它,我发现compress使用LZW算法。7-zip表示文件的“类型”是“Z”(扩展名也是),并且能够解压缩文件而不会出现任何问题,因此问题不在文件中。我还知道问题不在于如何下载文件,因为压缩字节流与打开hex editor时显示的字节相匹配 该文件本身是来自加拿大环境部的纯文本即时广播矩阵文件。不幸的是,我没有足够的声誉添加另一个链接 我一直找不到任何内置的LZW

我需要解压一个从互联网上下载的文本文件,大约256KB压缩,解压时为2MB。Linux
文件
实用程序告诉我它是“压缩数据16位”。查看它,我发现
compress
使用LZW算法。7-zip表示文件的“类型”是“Z”(扩展名也是),并且能够解压缩文件而不会出现任何问题,因此问题不在文件中。我还知道问题不在于如何下载文件,因为压缩字节流与打开hex editor时显示的字节相匹配

该文件本身是来自加拿大环境部的纯文本即时广播矩阵文件。不幸的是,我没有足够的声誉添加另一个链接

我一直找不到任何内置的LZW解码器,所以我不得不求助于使用第三方库。有很多这样的方法,但是到目前为止,我尝试过的方法都无法解压缩文件

lzwj-抛出
索引自动边界异常:无效索引40223,大小为256
。(索引本身并不重要)。但是,默认的码字长度是12。我已将源代码更改为码字长度为16,正如
文件
的输出似乎表明的那样(这个假设我错了吗?),但它引发了相同的异常(错误中显示的索引是针对16的码字长度)

在进行一些修改以获取输入流而不是文件后,还会引发索引越界异常。然而,由于它似乎是由一名学生为一项作业而写的,我无论如何都不习惯使用它

不幸的是,它只有一个
compress
方法,不进行解压缩

7-zip JBinding似乎是我最好的选择,但不幸的是,它似乎在Android上不起作用,无论是在全平台jar还是仅ARM的jar上都不起作用

我遇到了更多的库和单个类源文件,但它们没有相关的许可证,我正在避免使用受版权保护的代码


有谁能帮我找出这些错误的原因,或者提供一个替代解决方案吗?

您可以尝试提取并使用。

您是否尝试过Apache Commons Compress:谢谢,这非常有效!我不知道它是如何在我的雷达下飞行的,我甚至没有在这里看到任何其他与LZW相关的问题。