Как распаковать сжатый массив байтов lzo в java?

Я новичок в сжатии и распаковке LZO. Я пытаюсь использовать эту библиотеку lzo-java.

Вводная информация:

У меня есть один байтовый массив в сжатом формате. Этот массив байтов я хочу распаковать, и, наконец, мне нужен распакованный массив байтов.

ПРИМЕЧАНИЕ. Я не знаю, какой размер должен дать распакованный массив байтов, потому что я не знаю точного размера распакованного байта.

Я создал код ниже, но он не дает никаких исключений и даже не распаковывает один байт.

Программа:

InputStream stream = new ByteArrayInputStream(src);
int b1 = stream.read();
int b2 = stream.read();
int b3 = stream.read();
int b4 = stream.read();
int dstLength = ((b1 << 24) + (b2 << 16) + (b3 << 8) + b4);// decompressed byte array length not known
LzoAlgorithm algorithm = LzoAlgorithm.LZO1X;
LzoDecompressor decompressor =  LzoLibrary.getInstance().newDecompressor(algorithm, LzoConstraint.SAFETY);
byte dst[] = new byte[dstLength];
lzo_uintp lzo = new lzo_uintp(dstLength);
int decompress = decompressor.decompress(src, 0, src.length, dst, 0, lzo);
System.out.println("decompessed : " + decompress);//it is giving me 0

Что я пропустил в приведенном выше коде? Любые предложения будут полезны для меня!


person ketan    schedule 30.07.2017    source источник
comment
Привет, тебе удалось взломать это?   -  person Jerokdeep    schedule 24.08.2020