Я использовал java-репозиторий adrien grand, предоставляя JNI исходному коде LZ4.Эффективное сжатие нескольких файлов LZ4 с использованием java
Я хочу сжать несколько файлов в заданном каталоге ввода, но LZ4 не поддерживает множественное сжатие файлов, как в java-zip-пакете, поэтому я попробовал другой подход, в котором я думал, что tar все мои входные файлы и передают его в качестве входных данных к компрессору LZ4, и я использовал пакет Jtar java для тарификации всех моих входных файлов. Есть ли другой лучший способ, кроме этого?
Я столкнулся с множеством примеров кода, чтобы сжать некоторые строки и как правильно реализовать компрессор и декомпрессор LZ4. Теперь я хотел знать, как реально реализовать его для нескольких файлов?Я также хотел уточнить, иду ли я в правильном направлении.
После загрузки всех файлов, в соответствии с объяснением использования примера кода, я должен преобразовать свой файл с данными в массив байтов, чтобы предоставить его модулю компрессора. Для этой цели я использовал пакет apache-common-ioutil. Поэтому, учитывая, что у меня много файлов в качестве входных данных, и которые приводят к дег огромного размера, преобразование его всегда в байтовый массив кажется неэффективным по мне. Я хотел сначала узнать, эффективен это или нет? или лучше ли использовать LZ4-пакет лучше этого?
Другой проблемой, с которой я столкнулся, был конечный результат. После сжатия записанных файлов я получаю конечный результат, например файл MyResult.lz4, но я не смог его распаковать с помощью диспетчера архива (я использую ubuntu), так как он не поддерживает этот формат. Я также не понимаю формат архива и сжатия, который я должен использовать здесь. Я также хочу знать, в каком формате должен быть конечный результат. Итак, теперь я говорю с точки зрения пользователя, рассмотрим случай, когда я создаю резервную копию для пользователя, если я предоставляю его/ее традиционным. zip, .gz или любых известных форматов, пользователь мог бы самостоятельно распаковать его. Насколько я знаю, LZ4 не означает, что я должен ожидать, что пользователь также должен знать такой формат правильно? Возможно, он даже смущен, увидев такой формат. Таким образом, это означает, что преобразование с .lz4 в формат .zip также кажется бессмысленным. Я уже вижу процесс тарификации всех моих входных файлов в качестве трудоемкого процесса, , поэтому я хотел знать, насколько это влияет на производительность. Как я видел в пакете java zip, сжимающем несколько входных файлов, похоже, не проблема. Итак, рядом с lz4 я столкнулся с общим сжатием Apache и TrueZIP. Я также наткнулся на несколько строк переполнения стека, которые помогли мне многому научиться. На данный момент я действительно хотел использовать LZ4 для сжатия, особенно из-за его производительности, но я столкнулся с этими препятствиями. Любой, кто имеет хорошие знания о пакете LZ4, предлагает решения для всех моих запросов и проблем вместе с простой реализацией. Благодарю.
Время я вычислил для входа, состоящей из множества файлов,
Время, затраченное на тарирования: 4704 мс
Время, необходимое для преобразования файла в массив байтов: 7 мс
Время, затраченное на сжатие: 33 мс