Konvertierung von ZIP in tar.gz
Tar.gz ist das mit Abstand am weitesten verbreitete komprimierte Archivformat in der Linux-Welt, während ZIP das beliebteste für Windows ist. Wenn Sie ein ZIP-Archiv in tar.gz konvertieren möchten, lesen Sie diesen Artikel.
Konvertierung
Aspose.ZIP API bietet die Funktion saveGzipped, um ein Tar-Archiv im laufenden Betrieb zu komprimieren. Wir können einen Eintrag aus dem ZIP-Archiv in den Speicher extrahieren, ohne ihn in einem Zwischenspeicher zu speichern, und ihn sofort in das tar-Archiv einfügen.
Stellen Sie sicher, dass Sie über genügend virtuellen Speicher verfügen, um den Inhalt aller Einträge zu speichern.
Eintrag übertragen
Das folgende Codebeispiel zeigt, wie Einträge aus dem ZIP-Archiv extrahiert und sofort in das tar.gz-Archiv übertragen werden. Einträge, die Verzeichnisse sind, werden übersprungen, aber ihre Dateien werden unter Berücksichtigung relativer Pfade hinzugefügt.
1try (Archive source = new Archive("source.zip")) {
2 try (TarArchive tar = new TarArchive()) {
3 for (ArchiveEntry entry : source.getEntries()) {
4 if (!entry.isDirectory()) {
5 ByteArrayOutputStream out = new ByteArrayOutputStream();
6 try (InputStream mem = entry.open()) {
7 byte[] b = new byte[8192];
8 int bytesRead;
9 while (0 < (bytesRead = mem.read(b, 0, b.length))) {
10 out.write(b, 0, bytesRead);
11 }
12 }
13 tar.createEntry(entry.getName(), new ByteArrayInputStream(out.toByteArray()));
14 }
15 }
16
17 tar.saveGzipped("result.tar.gz");
18 }
19} catch (IOException ex) {
20 System.out.println(ex);
21}