snappy-java を使用してバイト文字列を解凍しようとしています
ByteString(0xff, 0x06, 0x00, 0x00, 0x73, 0x4e, 0x61, 0x50, 0x70, 0x59, 1, 14, 0, 0, 38, -104, 43, -49, 0, 0, 0, 6, 0, 0, 0, 0, 79, 75)
これには 2 つのフレームが含まれ、最初はチャンク値 0xff (ストリーム識別子) で長さ 6 で、2 番目のフレームは長さ 14 のチャンク タイプ 1 (非圧縮) です。[こちら] ( http://code. google.com/p/snappy/source/browse/trunk/framing_format.txt )
解凍に使用するコードはこちら
val c = ByteString(0xff, 0x06, 0x00, 0x00, 0x73, 0x4e, 0x61, 0x50, 0x70, 0x59, 1, 14, 0, 0, 38, -104, 43, -49, 0, 0, 0, 6, 0, 0, 0, 0, 79, 75)
Snappy.uncompress(c.toArray)
コードは、jna の一部である FAILED_TO_UNCOMPRESS エラーをスローします。私はscala v2.11.3とsnappy-java v1.0.5.4を使用しています
Exception in thread "main" java.io.IOException: FAILED_TO_UNCOMPRESS(5)
at org.xerial.snappy.SnappyNative.throw_error(SnappyNative.java:78)
at org.xerial.snappy.SnappyNative.rawUncompress(Native Method)
at org.xerial.snappy.Snappy.rawUncompress(Snappy.java:395)
at org.xerial.snappy.Snappy.uncompress(Snappy.java:431)
at org.xerial.snappy.Snappy.uncompress(Snappy.java:407)