
Los archivos RAR se utilizan habitualmente para comprimir grandes cantidades de datos en un único archivo más pequeño. Sin embargo, extraer estos archivos mediante programación en Java puede ser un desafío si no se tienen las herramientas adecuadas. En esta guía, analizaremos dos métodos para extraer archivos RAR con Java: uno para archivos RAR normales y otro para archivos RAR cifrados.
Extraer archivos RAR: configuración de la API de Java
Para descomprimir archivos en Java, debes instalar Conholdate.Total for Java mientras descargas el archivo JAR o ejecutar el siguiente comando Maven en el archivo pom.xml de tu proyecto:
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.8</version>
<type>pom</type>
</dependency>
Extraer archivos RAR en Java
Al extraer un archivo RAR normal, el proceso implica abrir el archivo, acceder a sus entradas individuales y guardar los datos extraídos en la ubicación deseada. El desglose paso a paso que se muestra a continuación demuestra cómo extraer la primera entrada de archivo de un archivo RAR y guardarla en un archivo. Este método es útil para manejar archivos RAR estándar.
Cargue el archivo RAR de origen utilizando la clase RarArchive.
Extrae un archivo del archivo fuente.
Exportar el archivo extraído al disco.
El siguiente fragmento de código muestra cómo manejar la lectura y escritura de archivos mediante flujos, garantizando que cada entrada se extraiga correctamente en pequeños fragmentos para evitar sobrecargas de memoria, especialmente cuando se trabaja con archivos 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);
}
Además, puede mejorar aún más este fragmento de código para iterar a través de cada entrada y exportarlo al archivo respectivo uno por uno, según sus requisitos.
Extraer archivos RAR cifrados en Java
Cuando se trabaja con archivos RAR protegidos con contraseña o encriptados, el proceso de extracción es ligeramente diferente. Debe proporcionar la contraseña correcta para extraer los archivos correctamente. Los siguientes pasos resumen el proceso para extraer archivos RAR encriptados y protegidos con contraseña en Java:
El archivo RAR cifrado de entrada se carga con la clase RarArchive.
Se proporciona la contraseña correcta para extraer la primera entrada del archivo.
Los datos extraídos se guardan con el nombre de archivo especificado.
El siguiente ejemplo de código demuestra cómo extraer RAR cifrado y protegido con contraseña 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);
}
Licencia de evaluación gratuita
Puede solicitar una licencia temporal gratuita para evaluar esta y otras funciones de compresión de datos y manipulación de marcha sin ninguna limitación de evaluación.
Resumiendo
Extraer archivos RAR en Java, ya sean estándar o cifrados, es una tarea sencilla con este enfoque. Ofrece formas eficientes y flexibles de manejar varios archivos RAR, incluidos los protegidos con contraseña. Puede integrar fácilmente la función de extracción de RAR en sus aplicaciones Java, lo que le permitirá administrar datos comprimidos sin problemas. Si tiene alguna pregunta, escríbanos a forum.