so come creare archivio zip:Come creare zip con compressione 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();
}
}
Ma non ho idea di come utilizzare la compressione LZMA.
Ho trovato questo progetto: https://github.com/jponge/lzma-java che crea file compresso ma non so come dovrei combinarlo con la mia soluzione esistente.
Né Zip util di Java né Commons-Compress compressione LZMA supporto per ogni ZipEntry. Probabilmente ci vorranno un giorno o due per estendere Commons-Compress per supportarlo usando il codice LZMA sopra e sovrascrivendo i controlli per STORAGE | SGONFIARE. In effetti, sarebbe bello se Commons-Compress potesse usare un approccio più estensibile in cui gli ZipArchiveEntries fossero estesi con il metodo di compressione richiesto, come ZipArchiveEntryLZMA. Così com'è, ci sono troppi controlli in ZipArchiveOutputStream per farlo rapidamente. –