wiem jak utworzyć archiwum zip:Jak stworzyć błyskawiczny z kompresją LZMA
import java.io.*;
import java.util.zip.*;
public class ZipCreateExample{
public static void main(String[] args) throws Exception
// input file
FileInputStream in = new FileInputStream("F:/sometxt.txt");
// out put file
ZipOutputStream out = new ZipOutputStream(new FileOutputStream("F:/tmp.zip"));
// name the file inside the zip file
out.putNextEntry(new ZipEntry("zippedjava.txt"));
// buffer size
byte[] b = new byte[1024];
int count;
while ((count = in.read(b)) > 0) {
System.out.println();
out.write(b, 0, count);
}
out.close();
in.close();
}
}
Ale nie mam pojęcia, w jaki sposób korzystać z kompresji LZMA.
Znalazłem ten projekt: https://github.com/jponge/lzma-java, który tworzy skompresowany plik, ale nie wiem, jak powinienem połączyć go z istniejącym rozwiązaniem.
Ani Java util-Zip, ani fotografia Compress kompresji LZMA wsparcie dla każdego ZipEntry. Najprawdopodobniej zajmie to dzień lub dwa na rozszerzony Commons-Compress, aby go obsłużyć, wykorzystując powyższy kod LZMA i nadpisując czeki dotyczące PRZECHOWYWANIA | SIADAĆ. W rzeczywistości, byłoby miło, gdyby Commons-Compress mógł korzystać z bardziej rozszerzalnego podejścia, w którym rozszerzenia ZipArchiveEntries zostały rozszerzone o wymaganą metodę kompresji, taką jak ZipArchiveEntryLZMA. W tej chwili jest zbyt wiele sprawdzeń w ZipArchiveOutputStream, aby zrobić to szybko. –