java解压rar文件
时间: 2023-07-19 12:08:28 浏览: 167
Java自身并不支持解压RAR文件,需要使用第三方库来实现。
我推荐使用Junrar这个库来解压RAR文件,它是一个开源库,可以在Github上找到它的代码和文档。
以下是一个简单的示例代码,演示如何使用Junrar库来解压RAR文件:
```java
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import com.github.junrar.Archive;
import com.github.junrar.exception.RarException;
import com.github.junrar.impl.FileVolumeManager;
import com.github.junrar.rarfile.FileHeader;
public class RarExtractor {
public static void extract(String filePath, String outputFolder) throws IOException, RarException {
Archive archive = null;
try {
archive = new Archive(new FileVolumeManager(new File(filePath)));
if (archive != null) {
archive.getMainHeader().print();
List<FileHeader> headers = archive.getFileHeaders();
for (FileHeader header : headers) {
if (header.isDirectory()) {
continue;
}
File file = new File(outputFolder + File.separator + header.getFileNameString().trim());
if (!file.exists()) {
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
file.createNewFile();
}
OutputStream os = null;
try {
os = new FileOutputStream(file);
archive.extractFile(header, os);
} finally {
if (os != null) {
os.close();
}
}
}
}
} finally {
if (archive != null) {
archive.close();
}
}
}
public static void main(String[] args) {
String filePath = "path/to/rar/file.rar";
String outputFolder = "output/folder/path";
try {
extract(filePath, outputFolder);
} catch (IOException e) {
e.printStackTrace();
} catch (RarException e) {
e.printStackTrace();
}
}
}
```
你需要将上述代码中的 `filePath` 和 `outputFolder` 替换成你自己的RAR文件路径和输出目录路径。
阅读全文