Zu 7z -Datei komprimiert
Erstens gibt es im Internet nur sehr wenig komprimierte Inhalte für 7Z.
Vor allem Java -Anrufe werden noch weniger komprimiert.
Es ist eine Komprimierung, die Sie selbst gemacht haben.
Ich habe es erfolgreich getestet.
Schreiben Sie den komprimierten Stream als komprimierte Datei in einer Festplatte.
Verwenden Sie dann die 7Z -Komprimierungssoftware, um zu öffnen und zu dekomprimieren.
7-Zip Open-Source-Projekt 7-Zip-Jbinding-Projektadresse (SourceForge)
Ohne weiteres ist die Methode zum Aufrufen von 7Z -Quellcode für die Komprimierung wie folgt.
public byte [] lzmazip (String xml) löst ioException {bufferputStream = neuer BufferputStream (New BytearrayInputStream (xml.GetBytes ()) aus; CCODER.SETENDMARDEMODE (EOS); (int) (Filesize >>> (8 * i)) & 0xff); 7z -Datei entpep
Verwenden Sie das Open-Source-Projekt 7-Zip-Jbinding von 7-Zip, um mehrere komprimierte Dateien zu dekomprimieren, anstatt externe Befehle aufzurufen (z. B. Winrar unter Gewinn).
Das eigene Dekompressionsmodul von Java verfügt über begrenzte Komprimierungstypen.
Codebeispiel
Paketkern; import java.io.file; import Java.io.filenotFoundException; Import Java.io.FileOutputStream; Import Java.io.ioException; importieren ja va.io.randomaccessfile; import Java.util.Arrays; Import Net.sfFe . siebenZipjbinding.Simple.ImpleInarchive; Net.sf.Sevenzipjbinding.Simple.ImplearchiveItem;/** verwenden Neue RandomAccessfile (Filepath, "R"); .out.println ("Hash | Größe | Dateiname"); -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------ ----- . ] Sitearray = New Long [1]; .GETPATH ()) // Fehler aufgenommen. {// todo automatisch erzeugte Block E. printstacktrace (); ; (" %9x | %10s | %s", // Hash [0], Sizearray [0], item.getPath ()); ; {try {inarchive.close (); } catch (ioException e) {System.err.println ("Fehlerschließdatei:" + e);}}}}}}} Beim Anruf:
Unzip = new Unzip (); unzip.extractile ("A.7z");Die Dateien im komprimierten Paket werden automatisch in das aktuelle Verzeichnis dekomprimiert. Der Code ist einfach und klar. Wenn Sie Fragen haben, können Sie unter der oben beschriebenen Projektadresse nach einer Diskussion suchen.