`
xudongcsharp
  • 浏览: 476906 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java解压Zip、Rar文件

    博客分类:
  • Java
 
阅读更多
一、解压zip文件
由于zip是免费的,所以在jdk里提供了相应的类对zip文件的实现:
java.util.zip.*,详细情况可以参考java API
    /** 
     * 解压zip文件 
     * @author Michael sun 
     */  
    public class UnzipFile {  
      
        /** 
         * 解压zip文件 
         *  
         * @param targetPath 
         * @param zipFilePath 
         */  
        public void unzipFile(String targetPath, String zipFilePath) {  
      
            try {  
                File zipFile = new File(zipFilePath);  
                InputStream is = new FileInputStream(zipFile);  
                ZipInputStream zis = new ZipInputStream(is);  
                ZipEntry entry = null;  
                System.out.println("开始解压:" + zipFile.getName() + "...");  
                while ((entry = zis.getNextEntry()) != null) {  
                    String zipPath = entry.getName();  
                    try {  
      
                        if (entry.isDirectory()) {  
                            File zipFolder = new File(targetPath + File.separator  
                                    + zipPath);  
                            if (!zipFolder.exists()) {  
                                zipFolder.mkdirs();  
                            }  
                        } else {  
                            File file = new File(targetPath + File.separator  
                                    + zipPath);  
                            if (!file.exists()) {  
                                File pathDir = file.getParentFile();  
                                pathDir.mkdirs();  
                                file.createNewFile();  
                            }  
      
                            FileOutputStream fos = new FileOutputStream(file);  
                            int bread;  
                            while ((bread = zis.read()) != -1) {  
                                fos.write(bread);  
                            }  
                            fos.close();  
      
                        }  
                        System.out.println("成功解压:" + zipPath);  
      
                    } catch (Exception e) {  
                        System.out.println("解压" + zipPath + "失败");  
                        continue;  
                    }  
                }  
                zis.close();  
                is.close();  
                System.out.println("解压结束");  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
      
        }  
      
        /** 
         * @param args 
         */  
        public static void main(String[] args) {  
            String targetPath = "D:\\test\\unzip";  
            String zipFile = "D:\\test\\test.zip";  
            UnzipFile unzip = new UnzipFile();  
            unzip.unzipFile(targetPath, zipFile);  
        }  
      
    }  



二、解压rar文件
由于WinRAR 是共享软件,并不是开源的,所以解压rar文件的前提是系统已经安装了winrar,比如本人的安装路径是:
C:\\Program Files\\WinRAR\\winrar.exe
然后运用java.lang.Process 的相关知识来运行系统命令行来实现解压的。
winrar 命令行相关参数自己可以搜索下的网上资料很多
    **  
     * 解压rar文件(需要系统安装Winrar 软件)  
     * @author Michael sun  
     */  
    public class UnRarFile {  
        /** 
         * 解压rar文件 
         *  
         * @param targetPath 
         * @param absolutePath 
         */  
        public void unRarFile(String targetPath, String absolutePath) {  
      
            try {  
      
                // 系统安装winrar的路径  
                String cmd = "C:\\Program Files\\WinRAR\\winrar.exe";  
                String unrarCmd = cmd + " x -r -p- -o+ " + absolutePath + " "  
                        + targetPath;  
      
                Runtime rt = Runtime.getRuntime();  
                Process pre = rt.exec(unrarCmd);  
                InputStreamReader isr = new InputStreamReader(pre.getInputStream());  
                BufferedReader bf = new BufferedReader(isr);  
                String line = null;  
                while ((line = bf.readLine()) != null) {  
                    line = line.trim();  
                    if ("".equals(line)) {  
                        continue;  
                    }  
                    System.out.println(line);  
                }  
      
                bf.close();  
            } catch (Exception e) {  
                System.out.println("解压发生异常");  
            }  
        }  
      
        /** 
         * @param args 
         */  
        public static void main(String[] args) {  
            String targetPath = "D:\\test\\unrar\\";  
            String rarFilePath = "D:\\test\\test.rar";  
            UnRarFile unrar = new UnRarFile();  
            unrar.unRarFile(targetPath, rarFilePath);  
        }  
      
    }  




原文出自:http://sjsky.iteye.com/blog/628920
分享到:
评论

相关推荐

    JAVA 上传ZIP,RAR文件并解压

    在Java编程环境中,上传并...通过结合标准库和第三方库,我们可以构建一个功能完备的文件处理系统,满足上传、解压ZIP和RAR文件的需求。记得在实际开发中根据项目需求进行适当的调整和优化,确保系统的稳定性和效率。

    详解Java无需解压直接读取Zip文件和文件内容

    Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面,我们将详细介绍如何使用Java...

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

    使用`java.util.zip`包中的`ZipInputStream`和`ZipEntry`类,可以读取并解压ZIP文件。以下是一个基本的解压流程: - 创建`ZipInputStream`实例,传入文件输入流。 - 循环遍历`ZipInputStream`的`ZipEntry`,获取...

    Java解压ZIP和RAR格式文件_所需资源.rar

    总结来说,Java中解压ZIP文件主要依赖`java.util.zip`包,而RAR文件则需要借助如Apache Commons Compress这样的第三方库。解压过程涉及到读取压缩文件流,创建文件或目录,以及将数据从输入流复制到输出流。这两个...

    java 解压zip,rar文件

    在Java编程环境中,解压ZIP和RAR文件是常见的任务,特别是在处理数据传输、备份或集成系统时。本文将深入探讨如何使用Java实现这一功能,并提供详细的步骤和代码示例。 首先,我们来看如何使用Java来解压ZIP文件。...

    JAVA解压缩ZIP或RAR格式的文件

    2. 使用`ArchiveInputStream`和`ArchiveEntry`处理RAR文件。 示例代码: ```java import org.apache.commons.compress.archivers.rar.RarArchiveEntry; import org.apache.commons.compress.archivers.rar....

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

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

    java 读取ZIP和RAR压缩包的目录结构

    java ZIP和RAR 压缩包 目录结构。 1.ant.jar 解决java自带zip不能读取中文压缩包的问题; 2.需要安装WINRAR软件,以便解压rar文件,然后获取对应目录; 3.实现在线预览压缩包目录结构的功能;

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

    以下是一个简单的解压Zip文件的例子: ```java import java.io.*; import java.util.zip.*; public class ZipExtractor { public static void extractZip(String zipFilePath, String outputDirectory) throws ...

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

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

    java解压zip或rar压缩文件源码与jar包

    1. **Java解压ZIP文件**: - Java标准库提供了`java.util.zip`包,其中包含了解压缩ZIP文件所需的所有类。主要使用`ZipInputStream`和`ZipEntry`两个类。 - `ZipInputStream`是一个字节流,可以从输入流中读取ZIP...

    java解压zip或rar压缩文件源码和jar包

    以下是一个简单的Java代码示例,展示如何解压zip文件: ```java import java.io.*; import java.util.zip.*; public class ZipExtractor { public static void main(String[] args) { String zipFilePath = ...

    java解压zip或rar压缩文件(源码和jar包)

    java解压zip或rar压缩文件 包括源码和所需要的jar包:apache ant.jar 和 java-unrar-0.3.jar zip文件解压(要使用apache ant.jar以处理中文乱码) rar文件解压(要使用java-unrar-0.3.jar) 具有处理中文乱码功能 代码...

    java实现的解压与压缩 zip和rar类型的

    对于RAR文件,Java标准库并不直接支持RAR格式,因此需要借助第三方库,如Apache Commons Compress。Apache Commons Compress库提供了对多种压缩格式的支持,包括RAR。以下是一个使用此库进行RAR解压缩的示例: ```...

    解压zip压缩文件,支持多文件目录解压,中文乱码问题

    在使用Java对ZIP压缩文件进行解压的方式中有两种,一种是使用apache提供的ant.jar工具包,但是如果ZIP文件中含有中文名称的文件,在解压后,文件名将出现乱码,另一种是使用Java自身JDK中java.util.zip包下工具类,...

    java 解压zip,rar

    本篇将详细讲解如何使用Java来解压ZIP和RAR文件。 首先,我们关注ZIP文件。Java标准库(Java SE)自带了`java.util.zip`包,提供了对ZIP文件的支持。`ZipInputStream`和`ZipEntry`是这个包中的核心类,用于读取和...

    Java解压zip,rar,7z的jar包

    // 对于rar文件,替换ZipArchiveInputStream为RARArchiveInputStream // 对于7z文件,需要使用SevenZFileLibrary的API public static void zipFiles(String srcPath, String destZipFilePath) throws ...

    java rar和zip解压

    这个例子展示了如何使用Apache Commons Compress库来解压RAR文件,原理与解压ZIP文件类似,只是使用的类和接口不同。 总的来说,Java处理RAR和ZIP文件的核心在于理解文件流和压缩流的概念,以及如何利用对应的API...

    rar文件压缩解压(java)

    在Java编程环境中,处理RAR文件的压缩和解压是一项常见的任务。RAR是一种高效的文件压缩格式,通常用于存储和传输大量数据。本篇文章将详细介绍如何使用Java来实现RAR文件的压缩和解压操作。 首先,Java标准库并...

    Java中递归逻辑循环调用解压zip里面所有的压缩包

    Java中递归逻辑循环调用解压zip里面所有的压缩包 Java中递归逻辑循环调用解压zip里面所有的压缩包

Global site tag (gtag.js) - Google Analytics