LZ4库兼容性问题:java和IOS
我想在IOS端用LZ4压缩数据,在Java端解压数据
我使用LZ4 compression和stream compression method表示IOS,使用jpountz()表示Java
它在Java端解压时失败。(看起来两个平台的LZ4标头不同。)
请帮忙
如果不可能,您能推荐任何适用于JAVA和IOS的可互操作LZ4库吗
你可以在下面搜索框中键入要查询的问题!
我想在IOS端用LZ4压缩数据,在Java端解压数据
我使用LZ4 compression和stream compression method表示IOS,使用jpountz()表示Java
它在Java端解压时失败。(看起来两个平台的LZ4标头不同。)
请帮忙
如果不可能,您能推荐任何适用于JAVA和IOS的可互操作LZ4库吗
# 1 楼答案
IOS的LZ4和来自jpountz的LZ4都使用它们自己的头来封装数据。 由于这些头是不同的,它们不能相互读取
您必须了解每个标题格式,并在两者之间实现某种形式的转换层。一旦报头被修复,剩余的有效负载(压缩数据本身)应该是可读的
另一种可能性是使用不同的LZ4库,它符合official LZ4 frame format。LZ4主页维护一个list of compliant codecs,其中一个是Java版本
C参考版本可以在iOS上使用。它是可移植的,并且通常与Objective-C兼容。使用
lz4frame.h
使用官方框架格式进行封装