Java解压缩RAR文件
时间: 2023-09-22 08:07:33 浏览: 55
Java本身并不支持RAR压缩文件的解压,但是可以通过调用第三方库来实现。以下是一种使用jUnrar库解压RAR文件的方法:
1. 下载jUnrar库并将其添加到Java项目中。
2. 使用以下代码解压RAR文件:
```java
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import de.innosystec.unrar.Archive;
import de.innosystec.unrar.exception.RarException;
import de.innosystec.unrar.io.ReadOnlyAccessFile;
import de.innosystec.unrar.rarfile.FileHeader;
public class RarExtractor {
public static void extract(File source, File destination) throws IOException, RarException {
Archive archive = null;
List<File> extractedFiles = new ArrayList<>();
try {
archive = new Archive(new ReadOnlyAccessFile(source));
FileHeader fileHeader = archive.nextFileHeader();
while (fileHeader != null) {
if (!fileHeader.isDirectory()) {
File extractedFile = new File(destination, fileHeader.getFileNameString().trim());
extractedFiles.add(extractedFile);
OutputStream os = null;
try {
os = new FileOutputStream(extractedFile);
archive.extractFile(fileHeader, os);
} catch (IOException e) {
throw e;
} finally {
if (os != null) {
os.close();
}
}
}
fileHeader = archive.nextFileHeader();
}
} finally {
if (archive != null) {
archive.close();
}
}
for (File file : extractedFiles) {
System.out.println("Extracted file: " + file.getAbsolutePath());
}
}
}
```
3. 调用上述方法来解压RAR文件:
```java
File source = new File("path/to/source.rar");
File destination = new File("path/to/destination/directory");
RarExtractor.extract(source, destination);
```
其中,`source`为要解压的RAR文件,`destination`为解压后的文件夹路径。执行完上述代码后,RAR文件中的所有文件都会被解压到指定的文件夹中。