2016-07-29 4 views
0

Каков наилучший способ подачи огромного файла CSV на API сжатия LZ4? Для очень больших файлов не является оптимальным.Сжатие файлов LZ4 в Java

byte[] data = file.getBytes(); 
+0

На основании http://jpountz.github.io/lz4-java/1.2.0/docs/net/jpountz/lz4/LZ4FastDecompressor.html, я не думаю, что вы можете. Вам абсолютно нужна компрессия LZ4? Я бы рассмотрел [gzip compression] (http://docs.oracle.com/javase/8/docs/api/java/util/zip/GZIPInputStream.html). – VGR

+0

gzip намного медленнее для того, что мне нужно - это дает мне скорость сжатия 50-75 МБ/с. Должен быть способ использовать входной поток с lz4? – zostale

+0

Вам нужно было бы изучить, сколько байтов составляет один сжимаемый модуль LZ4, и обрабатывать то, что многие из них сразу же из InputStream ... если LZ4 даже имеет такую ​​концепцию. – VGR

ответ

0

Вы можете попробовать https://github.com/flanglet/kanzi. Блок-компрессор принимает InputStream и разбивает его на блоки (вы указываете размер в командной строке).

Из Wiki, вы можете сделать что-то вроде этого:

Java -cp kanzi.jar kanzi.app.BlockCompressor -input = myFile.csv -output = myFile.knz -overwrite -блок = 8M -преобразования = lz4 -entropy = none

Смежные вопросы