java rar解压缩
时间: 2023-09-16 20:06:37 浏览: 153
java解压缩rar文件
在Java中解压缩RAR文件需要使用第三方库来实现,常用的库有以下两个:
1. Apache Commons Compress:一个广泛使用的Java库,支持多种压缩格式,包括RAR。使用该库需要先下载并导入jar包。
2. Junrar:一个Java解压缩RAR库,使用简单,只需导入jar包即可。
下面是使用Junrar解压缩RAR文件的示例代码:
```
import de.innosystec.unrar.Archive;
import de.innosystec.unrar.rarfile.FileHeader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class RarExtractor {
public static void main(String[] args) {
String sourcePath = "source.rar";
String destPath = "dest";
File sourceFile = new File(sourcePath);
File destDir = new File(destPath);
if (!destDir.exists()) {
destDir.mkdir();
}
Archive archive = null;
try {
archive = new Archive(sourceFile);
FileHeader fileHeader = archive.nextFileHeader();
while (fileHeader != null) {
String fileName = fileHeader.getFileNameW().isEmpty() ? fileHeader.getFileNameString() : fileHeader.getFileNameW();
String destFilePath = destPath + File.separator + fileName;
if (fileHeader.isDirectory()) {
File dir = new File(destFilePath);
if (!dir.exists()) {
dir.mkdirs();
}
} else {
File file = new File(destFilePath);
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
FileOutputStream fos = new FileOutputStream(file);
archive.extractFile(fileHeader, fos);
fos.close();
}
fileHeader = archive.nextFileHeader();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (archive != null) {
try {
archive.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
```
该示例代码使用Junrar库解压缩RAR文件,将文件解压到指定目录下。你只需修改sourcePath和destPath变量的值,即可实现RAR文件解压缩。
阅读全文