LZ4 и Zstd для JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 LZ4 и Zstd для Java

Сообщение Anonymous »

Существует ли лучшая библиотека сжатия Java для LZ4 и ZStd. Я пробовал использовать Apache Commons (это реализация zstd-jni)

Код: Выделить всё

            String fileURL = TestFileUtil.getFileURL(TestFileCategory.SMALL);
String outputFileName = TestFileUtil.BASE_DIR+"/zstd-"+(Math.random()*10)+".x";
System.out.println(Paths.get(fileURL));
printFileInfo(fileURL);
StopWatch watch = new StopWatch();
InputStream in = Files.newInputStream(Paths.get(fileURL));
OutputStream fout = Files.newOutputStream(Paths.get(outputFileName));
BufferedOutputStream out = new BufferedOutputStream(fout);
ZstdCompressorOutputStream zOut = new ZstdCompressorOutputStream(out);
int buffersize = 1024*4;
watch.mark();
final byte[] buffer = new byte[buffersize];
int n = 0;
while (-1 != (n = in.read(buffer))) {
zOut.write(buffer, 0, n);
}
zOut.close();
in.close();
Но этот код не работает, он выдает

Код: Выделить всё

Exception in thread "main" java.lang.NoClassDefFoundError: com/github/luben/zstd/ZstdOutputStream
at org.apache.commons.compress.compressors.zstandard.ZstdCompressorOutputStream.(ZstdCompressorOutputStream.java:83)
at com.zoho.test.testzstd.main(testzstd.java:28)
Caused by: java.lang.ClassNotFoundException: com.github.luben.zstd.ZstdOutputStream
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 2 more
а для LZ4 я просто заменяю ZStdCompressorOutputStream на

Код: Выделить всё

FramedLZ4CompressorOutputStream lzOut = new FramedLZ4CompressorOutputStream(out);
Но на сжатие файла размером 2,4 ГБ (csv) ушло почти 2 часа (еще не завершено).
Что-то не так с кодом? или какие-нибудь другие предложения?

Подробнее здесь: https://stackoverflow.com/questions/609 ... d-for-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»