我想在IOS端使用LZ4压缩数据,并想在Java端解压缩数据。
我将LZ4 compression和stream compression method用于IOS,将jpountz()用于Java。
在解压缩时在Java端失败。 (看起来LZ4标头在两个平台上都不同。)
请帮助!
如果不可能的话,您能推荐适用于JAVA和IOS的任何可互操作的LZ4库吗?
答案 0 :(得分:1)
用于IOS的LZ4和来自jpountz的LZ4都使用自己的标头封装数据。 由于这些标头不同,因此它们无法互相读取。
您将必须了解每种标头格式,并在两者之间实现某种形式的翻译层。标头固定好后,其余的有效负载(压缩数据本身)应该是可读的。
另一种可能性是使用符合official LZ4 frame format的其他LZ4库。 LZ4主页维护着list of compliant codecs,其中之一是Java版本。
C参考版本可以在iOS上使用。它是便携式的,并且通常与Objective-C兼容。使用lz4frame.h
使用官方框架格式进行封装。