Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java 解压rar

作者:噬血啸月   发布日期:2026-01-23   浏览:105

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Enumeration;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;

// 注意: Java本身并不直接支持RAR文件的解压,需要借助第三方库如Apache Commons Compress和TrueZip等。
// 这里使用的是Apache Commons Compress库来解压RAR文件。

import org.apache.commons.compress.archivers.ArchiveEntry;
import org.apache.commons.compress.archivers.ArchiveInputStream;
import org.apache.commons.compress.archivers.rar.RarArchiveInputStream;
import org.apache.commons.compress.utils.IOUtils;
import org.apache.commons.compress.utils.InputStreams;

public class UnrarExample {

    public static void unrar(String rarFilePath, String outputDirPath) {
        File rarFile = new File(rarFilePath);
        File outputDir = new File(outputDirPath);

        try (FileInputStream fis = new FileInputStream(rarFile);
             RarArchiveInputStream ris = new RarArchiveInputStream(fis)) {

            ArchiveEntry entry;
            while ((entry = ris.getNextEntry()) != null) {
                File outputFile = new File(outputDir, entry.getName());

                if (entry.isDirectory()) {
                    outputFile.mkdirs();
                } else {
                    File parent = outputFile.getParentFile();
                    if (!parent.exists()) {
                        parent.mkdirs();
                    }

                    try (FileOutputStream fos = new FileOutputStream(outputFile)) {
                        IOUtils.copy(ris, fos);
                    }
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        // 示例:解压名为 "example.rar" 的文件到 "output" 文件夹中
        unrar("example.rar", "output");
    }
}

解释说明:

  1. 依赖库:Java 本身不支持 RAR 文件的解压,因此需要引入第三方库 Apache Commons Compress。可以通过 Maven 或手动下载 JAR 包来引入该库。
  2. 函数 unrar:此函数接收两个参数,分别是 RAR 文件路径和输出目录路径。它会读取 RAR 文件并将其内容解压到指定的输出目录中。
  3. 主方法 main:提供了一个简单的示例,展示如何调用 unrar 函数来解压 RAR 文件。

注意事项:

  • 需要确保已经添加了 Apache Commons Compress 库的依赖。
  • 如果解压过程中遇到任何错误(如文件不存在或权限问题),会在控制台打印堆栈跟踪信息。

上一篇:java读取excel中的图片

下一篇:java list 查找

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

java读取excel中的图片

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站