Arbeiten mit GZip-Archiven
Übersicht
Aspose.ZIP für Java API ermöglicht das Erstellen und Verwalten von GZip-Archiven in Ihren Anwendungen, ohne dass andere Anwendungen von Drittanbietern erforderlich sind. Aspose.ZIP API bietet die Klasse GZipArchive für die Arbeit mit GZip-Archiven. Diese Klasse bietet verschiedene Methoden, um Operationen mit Archiven durchzuführen.
Der Gzip-Komprimierungsalgorithmus basiert auf dem DEFLATE-Algorithmus, der eine Kombination aus LZ77 und Huffman-Kodierung ist.
Eine Datei komprimieren
Das folgende Codebeispiel zeigt, wie eine Datei mit der GZipArchive-Instanz komprimiert wird.
1try (GzipArchive archive = new GzipArchive()) {
2 archive.setSource(dataDir + "data.bin");
3 archive.save(dataDir + "archive.gz");
4}
GZIP-Archiv öffnen
Das folgende Codebeispiel zeigt, wie man ein GZip-Archiv öffnet.
1try (GzipArchiv archive = new GzipArchiv(dataDir + "archive.gz")) {
2 try (FileOutputStream extracted = new FileOutputStream(dataDir + "data.bin")) {
3 InputStream entpackt = archive.open();
4 byte[] b = new byte[8192];
5 int bytesRead;
6 while (0 < (bytesRead = unpacked.read(b, 0, b.length))) {
7 extrahiert.write(b, 0, bytesRead);
8 }
9 }
10} catch (IOException ex) {
11 System.out.println(ex);
12}
Extrahieren in den Ausgabestrom
Das folgende Codebeispiel zeigt, wie ein Archiv aus einem Stream geöffnet und in einen ByteArrayOutputStream extrahiert wird.
1ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
2try (GzipArchive archive = new GzipArchive(new FileInputStream(dataDir + "sample.gz"))) {
3 byte[] b = new byte[8192];
4 int bytesLesen;
5 InputStream archiveStream = archive.open();
6 while (0 < (bytesRead = archiveStream.read(b, 0, b.length))) {
7 outputStream.write(b, 0, bytesRead);
8 }
9 System.out.println(archive.getName());
10} catch (IOException ex) {
11 System.out.println(ex);
12}
Speichern im Ausgabestrom
Das folgende Codebeispiel zeigt, wie man einen OutputStream öffnet und speichert.
1ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
2try (GzipArchive archive = new GzipArchive()) {
3 archive.setSource(new File(dataDir + "data.bin"));
4 archive.save(outputStream);
5}