Извлечь RAR в Java

Файлы RAR обычно используются для сжатия больших объемов данных в один файл меньшего размера. Однако извлечение этих файлов программным способом в Java может быть сложной задачей без правильных инструментов. В этом руководстве мы рассмотрим два метода извлечения файлов RAR с помощью Java: один для обычных файлов RAR и другой для зашифрованных файлов RAR.

Извлечение файлов RAR — конфигурация Java API

Чтобы распаковать файлы в Java, вам необходимо установить Conholdate.Total for Java при загрузке JAR-файла или выполнить следующую команду Maven в файле pom.xml вашего проекта:

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

Извлечение файлов RAR в Java

При извлечении обычного файла RAR процесс включает открытие архива, доступ к его отдельным записям и сохранение извлеченных данных в нужном месте. Пошаговое описание ниже демонстрирует, как извлечь первую запись файла из архива RAR и сохранить ее в файл. Этот метод полезен для обработки стандартных архивов RAR.

  • Загрузите исходный архив RAR с помощью класса RarArchive.

  • Извлеките архив из исходного файла.

  • Экспортируйте извлеченный архив на диск.

В следующем фрагменте кода показано, как обрабатывать чтение и запись файлов с использованием потоков, гарантируя, что каждая запись будет правильно извлечена небольшими фрагментами, чтобы избежать перегрузки памяти, особенно при работе с большими файлами.

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

Более того, вы можете дополнительно улучшить этот фрагмент кода, чтобы он проходил по каждой записи и экспортировал ее в соответствующий файл по одной в соответствии с вашими требованиями.

Извлечение зашифрованных файлов RAR в Java

При работе с защищенными паролем или зашифрованными файлами RAR процесс извлечения немного отличается. Вам необходимо указать правильный пароль для успешного извлечения файлов. Следующие шаги суммируют процесс извлечения зашифрованных и защищенных паролем файлов RAR в Java:

  • Входной зашифрованный файл RAR загружается с классом RarArchive.

  • Для извлечения первой записи файла указан правильный пароль.

  • Извлеченные данные сохраняются под указанным именем файла.

Следующий пример кода демонстрирует извлечение зашифрованного и защищенного паролем RAR-файла с помощью 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);
}

Бесплатная ознакомительная лицензия

Вы можете запросить бесплатную временную лицензию, чтобы оценить эту и другие функции сжатия данных и обработки маршей без каких-либо ограничений оценки.

Подведение итогов

Извлечение файлов RAR в Java, как стандартных, так и зашифрованных, является простой задачей при таком подходе. Он предлагает эффективные и гибкие способы обработки различных архивов RAR, включая защищенные паролем. Вы можете легко интегрировать функциональность извлечения RAR в свои приложения Java, что позволит вам легко управлять сжатыми данными. Если у вас есть какие-либо вопросы, пожалуйста, напишите нам на форум.

Смотрите также