Extrair RAR em Java

Arquivos RAR são comumente usados para compactar grandes quantidades de dados em um único arquivo menor. No entanto, extrair esses arquivos programaticamente em Java pode ser um desafio sem as ferramentas certas. Neste guia, abordaremos dois métodos para extrair arquivos RAR usando Java: um para arquivos RAR regulares e outro para arquivos RAR criptografados.

Extrair arquivos RAR - Configuração da API Java

Para descompactar arquivos em Java, você precisa instalar Conholdate.Total para Java enquanto baixa o arquivo JAR ou executar o seguinte comando Maven no arquivo pom.xml do seu projeto:

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

Extrair arquivos RAR em Java

Ao extrair um arquivo RAR regular, o processo envolve abrir o arquivo, acessar suas entradas individuais e salvar os dados extraídos no local desejado. A análise passo a passo abaixo demonstra como extrair a primeira entrada de arquivo de um arquivo RAR e salvá-la em um arquivo. Este método é útil para lidar com arquivos RAR padrão.

  • Carregue o arquivo RAR de origem usando a classe RarArchive.

  • Extraia um arquivo do arquivo de origem.

  • Exporte o arquivo extraído para o disco.

O trecho de código a seguir mostra como lidar com a leitura e gravação de arquivos usando fluxos, garantindo que cada entrada seja extraída corretamente em pequenos pedaços para evitar sobrecargas de memória, especialmente ao trabalhar com arquivos grandes.

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

Além disso, você pode aprimorar ainda mais esse trecho de código para iterar por cada entrada e exportá-la para o respectivo arquivo, uma por uma, conforme suas necessidades.

Extrair arquivos RAR criptografados em Java

Ao lidar com arquivos RAR criptografados ou protegidos por senha, o processo de extração é um pouco diferente. Você precisa fornecer a senha correta para extrair os arquivos com sucesso. As etapas a seguir resumem o processo para extrair arquivos RAR criptografados e protegidos por senha em Java:

  • O arquivo RAR criptografado de entrada é carregado com a classe RarArchive.

  • A senha correta é fornecida para extrair a primeira entrada do arquivo.

  • Os dados extraídos são salvos com o nome de arquivo especificado.

O exemplo de código a seguir demonstra como extrair RAR criptografado e protegido por senha usando 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);
}

Licença de avaliação gratuita

Você pode solicitar uma licença temporária gratuita para avaliar este e outros recursos de compactação de dados e manipulação de marcha sem quaisquer limitações de avaliação.

Resumindo

Extrair arquivos RAR em Java, sejam eles padrão ou criptografados, é uma tarefa simples com essa abordagem. Ela oferece maneiras eficientes e flexíveis de lidar com vários arquivos RAR, incluindo os protegidos por senha. Você pode integrar facilmente a funcionalidade de extração RAR em seus aplicativos Java, permitindo que você gerencie dados compactados perfeitamente. Se você tiver alguma dúvida, escreva para nós em forum.

Veja também