RAR in Java extrahieren

RAR Dateien werden häufig verwendet, um große Datenmengen in eine einzelne, kleinere Datei zu komprimieren. Das programmgesteuerte Extrahieren dieser Dateien in Java kann jedoch ohne die richtigen Tools eine Herausforderung sein. In dieser Anleitung werden wir zwei Methoden zum Extrahieren von RAR Dateien mit Java durchgehen: eine für normale RAR Dateien und eine andere für verschlüsselte RAR Dateien.

RAR Dateien extrahieren – Java-API-Konfiguration

Um Dateien in Java zu entpacken, müssen Sie Conholdate.Total für Java während des Herunterladens der JAR-Datei installieren oder den folgenden Maven-Befehl in der pom.xml-Datei Ihres Projekts ausführen:

<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.8</version>
<type>pom</type>
</dependency>

Extrahieren Sie RAR Dateien in Java

Beim Extrahieren einer normalen RAR-Datei umfasst der Vorgang das Öffnen des Archivs, den Zugriff auf die einzelnen Einträge und das Speichern der extrahierten Daten am gewünschten Speicherort. Die folgende Schritt-für-Schritt-Anleitung zeigt, wie Sie den ersten Dateieintrag aus einem RAR-Archiv extrahieren und in einer Datei speichern. Diese Methode ist für die Handhabung von Standard-RAR-Archiven nützlich.

  • Laden Sie das Quell-RAR-Archiv mit der Klasse RarArchive.

  • Extrahieren Sie ein Archiv aus der Quelldatei.

  • Exportieren Sie das extrahierte Archiv auf die Festplatte.

Der folgende Codeausschnitt zeigt, wie das Lesen und Schreiben von Dateien mithilfe von Streams gehandhabt wird. Dabei wird sichergestellt, dass jeder Eintrag ordnungsgemäß in kleinen Blöcken extrahiert wird, um Speicherüberlastungen zu vermeiden, insbesondere bei der Arbeit mit großen Dateien.

try (com.aspose.zip.RarArchive archive = new com.aspose.zip.RarArchive("archive.rar")) {
    try (FileOutputStream destination = new FileOutputStream(dataDir + "firstEntry.txt")) {
        try (InputStream source = archive.getEntries().get(0).open()) {
            byte[] b = new byte[1024];
            int bytesRead;
            while (0 < (bytesRead = source.read(b, 0, b.length))) {
                destination.write(b, 0, bytesRead);
            }
        }
    }
} catch (IOException ex) {
    System.out.println(ex);
}

Darüber hinaus können Sie diesen Codeausschnitt weiter verbessern, um jeden Eintrag zu durchlaufen und ihn Ihren Anforderungen entsprechend einzeln in die jeweilige Datei zu exportieren.

Extrahieren Sie verschlüsselte RAR Dateien in Java

Beim Umgang mit passwortgeschützten oder verschlüsselten RAR Dateien ist der Extraktionsprozess etwas anders. Sie müssen das richtige Passwort eingeben, um die Dateien erfolgreich zu extrahieren. Die folgenden Schritte fassen den Prozess zum Extrahieren verschlüsselter und passwortgeschützter RAR Dateien in Java zusammen:

  • Die verschlüsselte Eingabe-RAR-Datei wird mit der Klasse RarArchive geladen.

  • Zum Extrahieren des ersten Dateieintrags wird das richtige Kennwort bereitgestellt.

  • Die extrahierten Daten werden unter dem angegebenen Dateinamen gespeichert.

Das folgende Codebeispiel demonstriert das Extrahieren einer verschlüsselten und kennwortgeschützten RAR-Datei mit Java:

File fi = new File("encrypted.rar");
try (com.aspose.zip.RarArchive archive = new com.aspose.zip.RarArchive(Files.newInputStream(fi.toPath()))) {
    try (FileOutputStream destination = new FileOutputStream(dataDir + "firstEntry.txt")) {
        archive.getEntries().get(0).extract(destination, "p@s$w0rd");
    }
} catch (IOException ex) {
    System.out.println(ex);
}

Kostenlose Evaluierungslizenz

Sie können eine kostenlose temporäre Lizenz anfordern, um diese und andere Funktionen zur Datenkomprimierung und Feldmanipulation ohne jegliche Evaluierungsbeschränkungen zu testen.

Zusammenfassung

Das Extrahieren von RAR Dateien in Java, egal ob standardmäßig oder verschlüsselt, ist mit diesem Ansatz eine einfache Aufgabe. Es bietet effiziente und flexible Möglichkeiten, verschiedene RAR-Archive zu handhaben, einschließlich passwortgeschützter. Sie können die RAR-Extraktionsfunktion problemlos in Ihre Java-Anwendungen integrieren und so komprimierte Daten nahtlos verwalten. Wenn Sie Fragen haben, schreiben Sie uns bitte im Forum.

Siehe auch