`
eimhee
  • 浏览: 2151044 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 解压rar文件

 
阅读更多

https://github.com/ShenZhenSogaaTech/sogaa-web/blob/b1ef0d8bd582bbf4e0e4fb7ad0e39657f2b307d0/src/main/java/com/sogaa/system/utils/ZipUtils.java

 

 

 

 maven依赖关系

 

		<!-- https://mvnrepository.com/artifact/com.github.junrar/junrar -->
		<dependency>
			<groupId>com.github.junrar</groupId>
			<artifactId>junrar</artifactId>
			<version>0.7</version>
		</dependency>

 

 

import com.github.junrar.Archive;
import com.github.junrar.exception.RarException;
import com.github.junrar.rarfile.FileHeader;
import org.junit.Test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.List;

/**
 * Created by on 2017/2/28.
 */
public class RarTest {

    /**
     * @param rarFileName rar file name
     * @param outFilePath output file path
     * @return success Or Failed
     * @throws Exception
     * @author zhuss
     */
    public static boolean unrar(String rarFileName, String outFilePath) throws Exception {

        boolean flag = false;
        try {
            Archive archive = new Archive(new File(rarFileName));
            if (archive == null) {
                throw new FileNotFoundException(rarFileName + " NOT FOUND!");
            }
            if (archive.isEncrypted()) {
                throw new Exception(rarFileName + " IS ENCRYPTED!");
            }
            List<FileHeader> files = archive.getFileHeaders();
            for (FileHeader fh : files) {
                if (fh.isEncrypted()) {
                    throw new Exception(rarFileName + " IS ENCRYPTED!");
                }
                String fileName = fh.getFileNameString();
                if (fileName != null && fileName.trim().length() > 0) {
                    String saveFileName = outFilePath + "\\" + fileName;
                    File saveFile = new File(saveFileName);
                    File parent = saveFile.getParentFile();
                    if (!parent.exists()) {
                        parent.mkdirs();
                    }
                    if (!saveFile.exists()) {
                        saveFile.createNewFile();
                    }
                    FileOutputStream fos = new FileOutputStream(saveFile);
                    try {
                        archive.extractFile(fh, fos);
                        fos.flush();
                        fos.close();
                    } catch (RarException e) {
                        if (e.getType().equals(RarException.RarExceptionType.notImplementedYet)) {
                        }
                    } finally {
                    }
                }
            }
            flag = true;
        } catch (Exception e) {
            e.printStackTrace();
            throw e;
        }
        return flag;
    }

    @Test
    public void unrar() throws Exception {

        RarTest.unrar("/install/putty.rar", "/test");
    }

}

 

 

分享到:
评论

相关推荐

    Java 解压Rar文件

    java 解压 rar 文件,压缩包为测试工程,包含 java-unrar-0.3.jar

    java-rar文件递归解压

    Java中的RAR文件递归解压涉及到了文件处理和压缩库的使用,这在软件开发中是常见的需求。本文将深入探讨如何使用Java实现RAR文件的递归解压,包括理解RAR文件格式、选择合适的库、编写解压代码以及处理递归情况。 ...

    Java 解压带密码的 RAR文件

    Java解压RAR文件,压缩包内包含源码、Jar包、依赖包和示例程序,也可以从http://code.google.com/p/java-unrar/downloads/list这里下载支持密码的unrar项目(包括源码和jar包),其依赖包也很容易搜到。 RAR 密码

    Java实现解压RAR文件

    一个用java实现解压RAR压缩文件的例子,由于RAR的压缩算法被专利,所以借助了第三方的包(此文件里包含三方包)。

    Java解压带密码的RAR文件

    Java解压RAR文件,压缩包内包含源码、Jar包、依赖包和示例程序,也可以从http://code.google.com/p/java-unrar/downloads/list这里下载支持密码的unrar项目(包括源码和jar包),其依赖包也很容易搜到。

    JAVA 上传ZIP,RAR文件并解压

    对于上传RAR和ZIP文件的解压,Java标准库提供了`java.util.zip`包,包含`ZipInputStream`和`ZipFile`类来处理ZIP文件,而RAR文件则需要第三方库如Apache Commons Compress。下面是一个解压ZIP文件的例子: ```java ...

    java解压带密码的rar文件

    使用java解压带密码的rar压缩文件,解压目录下所有的rar文件

    java rar解压工具类

    java rar解压工具类 // 第一个参数是需要解压的压缩包路径,第二个参数参考JdkAPI文档的RandomAccessFile //r代表以只读的方式打开文本,也就意味着不能用write来操作文件

    java实现批量解压带密码的 rar or zip 文件

    对于RAR文件,Java标准库不提供原生支持,可以使用第三方库如`uniVocity-rarlib`。而对于ZIP文件,Java内置的`java.util.zip`包提供了基础的支持。以下将分别介绍这两个格式的解压方法。 1. **ZIP文件解压**: ...

    Java通用解压代码(RAR5,Zip,7Z)

    引入依赖后,你可以使用其提供的API来解压RAR5文件。 接着,对于Zip文件,Java标准库提供了`java.util.zip`包,包含了`ZipInputStream`和`ZipEntry`等类,可以方便地进行读取和解压操作。以下是一个简单的解压Zip...

    java zip rar(区分有无密码的RAR文件) gz ftp工具类

    本文将详细介绍标题和描述中提到的几个关键知识点:Java中的zip、rar(包括处理带密码的RAR文件)、gz压缩,以及FTP工具类的使用。 1. **Java ZIP压缩与解压缩**: Java内置的`java.util.zip`包提供了处理ZIP文件...

    java解压jar包及示例

    总结一下,Java解压RAR文件涉及使用第三方库如`java-unrar`,通过创建RarFile对象,遍历并解压文件条目来完成。同时,`ant.jar`在构建流程中可用于自动化解压缩任务。`DeCompressUtil.java`中的示例代码提供了解压的...

    rar文件压缩解压(java)

    // 解压RAR文件 // ... } } ``` 在实际应用中,`compress`方法需要遍历源文件夹中的所有文件,创建`RarOutputStream`,并将每个文件写入。`decompress`方法则需打开RAR文件,读取每个条目,并将其解压到目标目录...

    Java解压缩文件,尤其对于Rar5.0版本的解压实现.zip

    沙漏哦2022-09-16 16:00:57原证Java解压缩文件,尤其对于Rar5.0版本的解压实现 项目描述 junrar已经不再支持Rar5版本的压缩文件。sevenzipjbinding对于Rar5压缩包的解压是调用本地7z软件进行解压的,如果本机环境...

    java 解压zip,rar文件

    解压RAR文件则稍微复杂一些,因为Java标准库不直接支持RAR格式。你需要引入第三方库如Apache Commons Compress或者JSAPAR。这里以Apache Commons Compress为例: ```java import org.apache.commons.compress....

    jUnrar解压rar文件例子

    1. **解压RAR文件**:你可以使用`jUnrar`来解压整个RAR文件到指定的目录,或者只提取特定的文件。 2. **遍历RAR文件内容**:库提供了方法来获取RAR文件中的所有文件和目录,可以方便地查看压缩包内的结构。 3. **...

    java压缩与解压RAR文件

    3. 解压RAR文件: 对于RAR文件的解压,我们可以使用`org.apache.commons.compress.archivers.rar.RarArchiveInputStream`。以下是一个简单的解压示例: ```java import org.apache.commons.compress.archivers....

    java对zip、rar文件的压缩和解压缩

    ### Java对ZIP、RAR文件的压缩与解压缩技术解析 #### 概述 在实际开发过程中,文件的压缩与解压缩是一项非常常见的需求。本文将详细介绍如何使用Java语言实现ZIP和RAR格式文件的压缩与解压缩操作。文章通过具体的...

    java-unrar-解压rar.rar

    Java-unrar库是一个用于在Java环境中解压RAR文件的开源工具。这个库使得开发者无需依赖外部的RAR解压缩软件,就能直接在Java程序中处理RAR文件。本文将深入讲解如何使用Java-unrar库来实现RAR文件的解压缩,并探讨...

    java解压rar 包含java-unrar-0.3.jar

    以下是一个简单的使用`java-unrar-0.3.jar`库解压RAR文件的Java代码示例: ```java import com.igormaznitsa.junrar.Archive; import com.igormaznitsa.junrar.UnrarEventConsumer; import ...

Global site tag (gtag.js) - Google Analytics