
Файлы 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, что позволит вам легко управлять сжатыми данными. Если у вас есть какие-либо вопросы, пожалуйста, напишите нам на форум.