Java解压rar5兼容rar4

简介: 【8月更文挑战第2天】在Java中解压rar5并兼容rar4格式文件通常需借助第三方库,如JUnrar。示例代码展示了如何利用JUnrar库解压rar文件:首先确保已添加JUnrar依赖,然后通过`Archive`类读取rar文件,并逐个提取非目录条目到指定路径。实际使用时需替换文件路径。也可考虑使用Apache Commons Compress库,但可能需额外配置以支持rar5和rar4。

在 Java 中要实现解压 rar5 并兼容 rar4 格式的文件,通常需要使用第三方库。其中,比较常用的是 JUnrar 库。


以下是一个简单的示例代码,展示如何使用 JUnrar 库来解压 rar 文件:


首先,确保您已经在项目中添加了 JUnrar 库的依赖。


import com.github.junrar.Archive;
import com.github.junrar.exception.RarException;
import com.github.junrar.rarfile.FileHeader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class UnrarExample {
    public static void main(String[] args) {
        String rarFilePath = "/yourPath/yourRarFile.rar";  // 替换为实际的 rar 文件路径
        String destinationPath = "/yourDestinationPath";  // 替换为解压的目标路径
        unrarFile(rarFilePath, destinationPath);
    }
    public static void unrarFile(String rarFilePath, String destinationPath) {
        try {
            Archive archive = new Archive(new File(rarFilePath));
            FileHeader fileHeader;
            while ((fileHeader = archive.nextFileHeader())!= null) {
                if (!fileHeader.isDirectory()) {
                    String fileName = fileHeader.getFileNameString();
                    File destinationFile = new File(destinationPath + File.separator + fileName);
                    destinationFile.getParentFile().mkdirs();
                    try (FileOutputStream fos = new FileOutputStream(destinationFile)) {
                        archive.extractFile(fileHeader, fos);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            archive.close();
        } catch (RarException | IOException e) {
            e.printStackTrace();
        }
    }
}


请注意,上述代码中的路径需要您根据实际情况进行替换。


另外,还可以考虑使用其他的库,如 Apache Commons Compress ,但可能需要更多的配置和处理来实现对 rar5rar4 的兼容解压。

相关文章
|
6月前
|
Java 关系型数据库 Linux
Linux|Java|jar包的解压和重新打包(更新配置)
Linux|Java|jar包的解压和重新打包(更新配置)
308 0
|
12月前
|
Java
java 读取文件 获取byte[]字节 并执行Gzip的压缩和解压
java 读取文件 获取byte[]字节 并执行Gzip的压缩和解压
116 0
|
存储 算法 Java
Java解压本地zip文件(zip4j)
Java解压本地zip文件(zip4j)
Java解压本地zip文件(zip4j)
|
算法 安全 Java
java对zip、rar、7z文件带密码解压实例
本文采用java语言实现了对zip和rar、7z文件的解压统一算法。并对比了相应的解压速度,支持传入密码进行在线解压。
1745 0
java对zip、rar、7z文件带密码解压实例
|
网络协议 安全 Java
Java通过OpenSSH上传文件到远程Windows服务器,并远程解压zip包
Java通过OpenSSH上传文件到远程Windows服务器,并远程解压zip包
1233 0
Java通过OpenSSH上传文件到远程Windows服务器,并远程解压zip包
|
3月前
|
Java
Java SpringBoot 7z 压缩、解压
Java SpringBoot 7z 压缩、解压
65 1
|
5月前
|
Java
赫夫曼压缩解压(java)
赫夫曼压缩解压(java)
Java-工具类之ZIP压缩解压
Java-工具类之ZIP压缩解压
333 0
|
Java
java 实现zip 压缩 解压 (目录控制)
java 实现zip 压缩 解压 (目录控制)
317 0
|
Java
Java解压zip到指定文件夹
Java解压zip到指定文件夹
472 0
Java解压zip到指定文件夹