- 浏览: 916940 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (263)
- J2EE (9)
- Spring (11)
- Hibernate (11)
- Struts (5)
- opensource (19)
- Hadoop (28)
- 架构设计 (8)
- 企业应用 (10)
- SNMP (8)
- SSO (4)
- webservice (11)
- RPC (2)
- 编程语言 (0)
- Java (30)
- Javascript (5)
- NoSQL (11)
- 数据库 (0)
- oracle (8)
- MySQL (3)
- web (1)
- Android (2)
- Linux (15)
- 软件工具 (15)
- 项目构建 (11)
- 测试工具 (2)
- Exception (19)
- 杂谈 (4)
- Groovy (5)
- Nodejs (1)
- MacOSX (4)
最新评论
-
fighhin:
decode(BinaryBitmap,java.util.M ...
条形码/二维码之开源利器ZXing图文介绍 -
u013489005:
追问:楼主,请问有中文文档么?我的邮箱是frankgray@s ...
Java表达式计算引擎:Expr4J -
u013489005:
感谢博主 需要引入的包是import java.io.*;im ...
Java表达式计算引擎:Expr4J -
calosteward:
感谢楼主分享。。 Zxing 我听说过的。__________ ...
条形码/二维码之开源利器ZXing图文介绍 -
u013810758:
judasqiqi 写道感谢楼主!想请问楼主一下这个生成的图片 ...
Java实现二维码QRCode的编码和解码
blog迁移至:http://www.micmiu.com
本文主要讲一讲如何在java中实现对zip和rar文件的解压。
本文的相关的源码:源码下载
一、解压rar文件。
由于WinRAR 是共享软件,并不是开源的,所以解压rar文件的前提是系统已经安装了winrar,比如本人的安装路径是:
C:\\Program Files\\WinRAR\\winrar.exe
然后运用java.lang.Process 的相关知识来运行系统命令行来实现解压的。
winrar 命令行相关参数自己可以搜索下的网上资料很多
具体代码:
二、解压zip文件
由于zip是免费的,所以在jdk里提供了相应的类对zip文件的实现:
java.util.zip.*,详细情况可以参考java API
是啊,你有什么好的办法,可以拿出来啊,呵呵
希望这位仁兄 给点解决方案能实现对rar文件的解压
这是由于客户的特殊需要,需要对上传的压缩文件(可能rar 也可能是zip),解压后再对文件做相关处理,
所以想到了这样的办法 现在共享出来,希望对大家有所帮助
是不是我写的有歧义? 我没有说这两个算法是一样的,我是分开单独讲这两种文件的解压
本文主要讲一讲如何在java中实现对zip和rar文件的解压。
本文的相关的源码:源码下载
一、解压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); } }
二、解压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); } }
- UnRarOrZip.zip (1.6 KB)
- 下载次数: 454
评论
12 楼
cxl2086
2011-07-06
jdk对zip的解压,中文会有乱码,用ant.jar 试过就没有乱码
11 楼
enefry
2011-03-21
unrar解压好像是免费的吧.
10 楼
mqlfly2008
2010-08-29
zip的解压算法是正确的,可以用到程序中!但如果在服务器端解压后传到view层时会出现乱码问题,以前是通过ant来解决的!希望能够看到其他的解决方式
9 楼
aa00aa00
2010-08-20
windchill_java 写道
如此简单的东西,难道你解压或压缩还得指定WinRAR 的安装路径吗,搞笑很
是啊,你有什么好的办法,可以拿出来啊,呵呵
8 楼
sjsky
2010-03-31
windchill_java 写道
如此简单的东西,难道你解压或压缩还得指定WinRAR 的安装路径吗,搞笑很
希望这位仁兄 给点解决方案能实现对rar文件的解压
7 楼
windchill_java
2010-03-31
如此简单的东西,难道你解压或压缩还得指定WinRAR 的安装路径吗,搞笑很
6 楼
ray_linn
2010-03-31
马上就见新手帖
5 楼
sjsky
2010-03-31
mathfox 写道
真是有创意,这都能想出来
这是由于客户的特殊需要,需要对上传的压缩文件(可能rar 也可能是zip),解压后再对文件做相关处理,
所以想到了这样的办法 现在共享出来,希望对大家有所帮助
4 楼
sjsky
2010-03-31
fjlyxx 写道
一个微软的算法 一个标准通用的算法 怎么会一样呢.
是不是我写的有歧义? 我没有说这两个算法是一样的,我是分开单独讲这两种文件的解压
3 楼
mathfox
2010-03-31
真是有创意,这都能想出来
2 楼
mgcnrx11
2010-03-31
不错,zip解压正好需要用到
1 楼
fjlyxx
2010-03-31
一个微软的算法 一个标准通用的算法 怎么会一样呢.
发表评论
-
$JAVA_HOME环境变量在Mac OS X中设置的问题
2014-01-19 20:31 1638系统版本:Mac OS X 10.9.1 在 ... -
JBoss IIOP实现CORBA/IIOP访问EJB的示例
2014-01-17 14:08 617目录 概述 特性 示例演示 详见:http:// ... -
JavaIDL开发CORBA实例演示
2013-10-25 15:51 524目录: 概述 开发步骤 创建Java项目 -
OpenORB开发CORBA的实例介绍
2013-10-25 15:50 1266目录: 概述 开发步骤 -
java读取控制台输入的几种方法
2013-10-24 09:01 1071java读取控制台输入的 ... -
OSX系统中各种JDK的路径说明
2013-10-15 08:50 641不同厂商发布的JDK,在OSX下的安装路径是不同的。以我本机 ... -
Java 完美判断中文字符
2012-11-23 17:23 1024详见:http://www.micmiu.com/ ... -
java自带的MD5、SHA1算法演示
2012-06-04 10:23 3066详见:http://www.micmiu.com/lang ... -
解决java网络编程IPv6问题
2012-04-05 13:38 1381详见:http://www.micmiu.com/lang/j ... -
swing中Label添加下划线几种方法(含完美版本)
2011-09-30 11:57 3331blog迁移至 :http://www.micmiu. ... -
Java实现给图片添加水印
2011-08-21 12:21 15824blog迁移至 :http://www.m ... -
Java对象序列化ObjectOutputStream和ObjectInputStream示例
2011-08-01 14:14 13695blog迁移至 :http://www.m ... -
proxool连接池介绍
2011-06-29 08:42 3907blog迁移至:http://www.micmiu.c ... -
c3p0配置介绍
2011-06-28 08:56 6607blog迁移至 :http://www.micmiu. ... -
apache-DBCP基本配置介绍
2011-06-27 00:04 13356blog迁移至:http://www ... -
JAVA中IP和整数相互转化介绍
2011-06-22 18:36 4775blog迁移至 :http://www.micmiu. ... -
JAVA线程池ThreadPoolExecutor
2011-06-21 19:00 8985blog迁移至:http://www.micmiu.c ... -
Java 获取当前Classpath
2011-06-19 11:50 8122blog迁移至:http://www ... -
Array和Collection相互转换以及copy深度的小测
2011-06-18 18:46 2264blog迁移至:http://www.micmiu.c ... -
扫描指定包下的类(包括jar文件里的类)
2011-05-27 12:56 5979blog迁移至:http://www.micmiu.c ...
相关推荐
在Java编程环境中,上传并...通过结合标准库和第三方库,我们可以构建一个功能完备的文件处理系统,满足上传、解压ZIP和RAR文件的需求。记得在实际开发中根据项目需求进行适当的调整和优化,确保系统的稳定性和效率。
总结来说,Java中解压ZIP文件主要依赖`java.util.zip`包,而RAR文件则需要借助如Apache Commons Compress这样的第三方库。解压过程涉及到读取压缩文件流,创建文件或目录,以及将数据从输入流复制到输出流。这两个...
在Java编程环境中,解压ZIP和RAR文件是常见的任务,特别是在处理数据传输、备份或集成系统时。本文将深入探讨如何使用Java实现这一功能,并提供详细的步骤和代码示例。 首先,我们来看如何使用Java来解压ZIP文件。...
Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面,我们将详细介绍如何使用Java...
2. 使用`ArchiveInputStream`和`ArchiveEntry`处理RAR文件。 示例代码: ```java import org.apache.commons.compress.archivers.rar.RarArchiveEntry; import org.apache.commons.compress.archivers.rar....
使用`java.util.zip`包中的`ZipInputStream`和`ZipEntry`类,可以读取并解压ZIP文件。以下是一个基本的解压流程: - 创建`ZipInputStream`实例,传入文件输入流。 - 循环遍历`ZipInputStream`的`ZipEntry`,获取...
1. **Java解压ZIP文件**: - Java标准库提供了`java.util.zip`包,其中包含了解压缩ZIP文件所需的所有类。主要使用`ZipInputStream`和`ZipEntry`两个类。 - `ZipInputStream`是一个字节流,可以从输入流中读取ZIP...
java ZIP和RAR 压缩包 目录结构。 1.ant.jar 解决java自带zip不能读取中文压缩包的问题; 2.需要安装WINRAR软件,以便解压rar文件,然后获取对应目录; 3.实现在线预览压缩包目录结构的功能;
本文通过具体的代码示例详细介绍了如何使用Java进行ZIP和RAR文件的压缩与解压缩操作。对于ZIP文件,我们利用了Java自带的API;而对于RAR文件,则引入了第三方库。此外,还特别关注了解压缩过程中的字符编码问题以及...
java解压zip或rar压缩文件 包括源码和所需要的jar包:apache ant.jar 和 java-unrar-0.3.jar zip文件解压(要使用apache ant.jar以处理中文乱码) rar文件解压(要使用java-unrar-0.3.jar) 具有处理中文乱码功能 代码...
以下是一个简单的Java代码示例,展示如何解压zip文件: ```java import java.io.*; import java.util.zip.*; public class ZipExtractor { public static void main(String[] args) { String zipFilePath = ...
以下是一个简单的解压Zip文件的例子: ```java import java.io.*; import java.util.zip.*; public class ZipExtractor { public static void extractZip(String zipFilePath, String outputDirectory) throws ...
本文将深入探讨如何使用Java实现ZIP和RAR类型的压缩与解压操作,以及相关知识点。 首先,我们来看ZIP文件格式。ZIP是一种广泛使用的文件压缩格式,其在Java中的处理主要通过`java.util.zip`包。这个包提供了多个类...
本篇将详细讲解如何使用Java来解压ZIP和RAR文件。 首先,我们关注ZIP文件。Java标准库(Java SE)自带了`java.util.zip`包,提供了对ZIP文件的支持。`ZipInputStream`和`ZipEntry`是这个包中的核心类,用于读取和...
// 对于rar文件,替换ZipArchiveInputStream为RARArchiveInputStream // 对于7z文件,需要使用SevenZFileLibrary的API public static void zipFiles(String srcPath, String destZipFilePath) throws ...
本文将详细介绍标题和描述中提到的几个关键知识点:Java中的zip、rar(包括处理带密码的RAR文件)、gz压缩,以及FTP工具类的使用。 1. **Java ZIP压缩与解压缩**: Java内置的`java.util.zip`包提供了处理ZIP文件...
这个例子展示了如何使用Apache Commons Compress库来解压RAR文件,原理与解压ZIP文件类似,只是使用的类和接口不同。 总的来说,Java处理RAR和ZIP文件的核心在于理解文件流和压缩流的概念,以及如何利用对应的API...
以下是一个简单的示例,展示如何使用这些库来解压ZIP和RAR文件: ```java import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.ice.junrar.Archive; import ...
Java解压RAR文件,压缩包内包含源码、Jar包、依赖包和示例程序,也可以从http://code.google.com/p/java-unrar/downloads/list这里下载支持密码的unrar项目(包括源码和jar包),其依赖包也很容易搜到。