JavaでRARを抽出

RAR ファイルは、大量のデータを 1 つの小さなファイルに圧縮するためによく使用されます。ただし、適切なツールがなければ、Java でプログラム的にこれらのファイルを抽出するのは困難です。このガイドでは、Java を使用して RAR ファイルを抽出する 2 つの方法について説明します。1 つは通常の RAR ファイル用、もう 1 つは暗号化された RAR ファイル用です。

RAR ファイルの抽出 - Java API 構成

Java でファイルを解凍するには、JAR ファイルをダウンロードするときに Conholdate.Total for Java をインストールするか、プロジェクトの pom.xml ファイルで次の Maven コマンドを実行する必要があります。

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

JavaでRARファイルを抽出する

通常の RAR ファイルを抽出する場合、アーカイブを開き、個々のエントリにアクセスし、抽出したデータを目的の場所に保存するプロセスが含まれます。以下のステップバイステップの内訳では、RAR アーカイブから最初のファイル エントリを抽出してファイルに保存する方法を示します。この方法は、標準の RAR アーカイブを処理する場合に便利です。

  • RarArchive クラスを使用してソース RAR アーカイブを読み込みます。

  • ソース ファイルからアーカイブを抽出します。

  • 抽出したアーカイブをディスクにエクスポートします。

次のコード スニペットは、ストリームを使用してファイルの読み取りと書き込みを処理する方法を示しています。特に大きなファイルで作業する場合、メモリの過負荷を回避するために、各エントリが小さなチャンクで適切に抽出されるようにします。

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);
}

さらに、このコード スニペットをさらに強化して、各エントリを反復処理し、要件に応じて 1 つずつそれぞれのファイルにエクスポートすることもできます。

Java で暗号化された RAR ファイルを抽出する

パスワードで保護された、または暗号化された RAR ファイルを扱う場合、抽出プロセスは若干異なります。ファイルを正常に抽出するには、正しいパスワードを入力する必要があります。次の手順は、暗号化されパスワードで保護された RAR ファイルを Java で抽出するプロセスをまとめたものです。

  • 入力された暗号化された RAR ファイルは、RarArchive クラスで読み込まれます。

  • 最初のファイル エントリを抽出するために正しいパスワードが提供されます。

  • 抽出されたデータは指定されたファイル名で保存されます。

次のコード サンプルは、Java を使用して暗号化されパスワードで保護された RAR を抽出する方法を示しています。

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);
}

無料評価ライセンス

無料の一時ライセンスをリクエストして、評価制限なしでこの機能やその他のデータ圧縮機能、マーカ操作機能を評価できます。

まとめ

このアプローチでは、標準または暗号化された RAR ファイルを Java で抽出するのは簡単です。パスワードで保護されたものも含め、さまざまな RAR アーカイブを効率的かつ柔軟に処理できます。RAR 抽出機能を Java アプリケーションに簡単に統合できるため、圧縮データをシームレスに管理できます。ご質問がある場合は、フォーラム までお問い合わせください。

参照