- 浏览: 1460496 次
- 性别:
- 来自: 广东
文章分类
- 全部博客 (190)
- eclipse (5)
- struts (15)
- spring (1)
- hibernate (0)
- myeclipse (3)
- java (35)
- apache (1)
- PHP (7)
- 虚拟机 (0)
- 网络安全 (3)
- 防火墙 (1)
- linux (7)
- SVN (22)
- 测试文档 (1)
- 测试经验 (0)
- 项目管理 (0)
- BUG管理工具 (3)
- 安装配置 (3)
- 性能工具 (7)
- 脚本学习 (0)
- 协议选择 (0)
- loadrunner错误处理 (0)
- 相关监控配置 (0)
- 框架的认识 (0)
- 手动关联 (0)
- 性能调优 (1)
- 负载均衡 (0)
- 代码学习 (1)
- Windows (5)
- 软件开发安全 (0)
- 考研经验 (1)
- SQL SERVER (1)
- MySQL (6)
- LVS (0)
- ORACLE (1)
- TOMCAT (0)
- 开源框架 (1)
- EOS (3)
- web (5)
- JEECMS (7)
- XML (1)
- LDAP (3)
- ehcache (1)
- Ajax (3)
- OpenSourceTools (1)
- Exception (1)
- 密码学 (1)
- os-centos (1)
- os-ubuntu (0)
- os-FreeBSD (0)
- os-Fedora (0)
- 浏览器-chrome (1)
- flex (1)
- 数据结构与算法 (0)
最新评论
-
joedan0104:
挺方便的,谢谢
JDK1.6官方下载_JDK6官方下载地址:http://www.java.net/download -
naruik:
非常感谢,不用自己找了。收藏和关注了。
JDK1.6官方下载_JDK6官方下载地址:http://www.java.net/download -
scd01234:
感谢!
JDK1.6官方下载_JDK6官方下载地址:http://www.java.net/download -
qingcheng123:
大虾,5.3这个版本有没有下载地址呀,谢谢!
EOS5.3+Tomcat5.0.28升级JDK1.5解决方案 -
1021082712:
JDK1.6官方下载_JDK6官方下载地址:http://www.java.net/download
关于java解压zip与rar的问题
这两天,因为项目需要,涉及到文件夹的上传,想了很久,在网上也找了一些资料,都没有什么很好的办法,都是用插件之类的解决,后面就想到了上传压缩文件,说到压缩文件,自然就会遇到,文件的解压缩问题,大家都知道,比较常见的压缩文件有rar,zip,然而rar,zip的区别又在哪?说一点,zip 压缩算法是免费开放的,任何人可以免费使用。但是 RAR 就不一样了,
这个压缩算法已经受到专利权的保护,如果要使用 RAR 算法必须向其专利所有人支付费用。所以在一般的开源网站,像apache,sourceforge等开源网站上的开源项目一般都用zip格式.本人所学语言主要为java自然会想用java去解压,用java去解压zip比较容易,有apache提供的开源项目ant,我在网上找一下,找到了sourceforge的开源项目unrar专用于压缩,解压rar.只可惜没有文档(让人即喜,又悲).
下面是一个对zip,rar进行解压的程序(从http://topic.csdn.net/u/20090227/11/fd8c30ee-ce56-49be-bdea-d19d22a0da37.html转载,供大家一起享用,另外希望对unrar有比较发解的朋友,能发表一个人见解),
- import org.apache.tools.tar.TarEntry;
- import org.apache.tools.tar.TarOutputStream;
- import org.apache.tools.zip.ZipEntry;
- import org.apache.tools.zip.ZipFile;
- import org.apache.tools.zip.ZipOutputStream;
import org.apache.tools.tar.TarEntry; import org.apache.tools.tar.TarOutputStream; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipFile; import org.apache.tools.zip.ZipOutputStream;
import de.innosystec.unrar.Archive;
- /**
- * *
- * @version 创建时间:Feb 26, 2009 6:01:11 PM
- * 类说明:压缩、解压文件公用类
- *
- */
- public class Decompression {
- private static final int BUFFEREDSIZE = 1024;
- /**
- * 解压zip格式的压缩文件到指定位置
- * @param zipFileName 压缩文件
- * @param extPlace 解压目录
- * @throws Exception
- */
- @SuppressWarnings("unchecked")
- public synchronized void unzip(String zipFileName, String extPlace) throws Exception {
- try {
- (new File(extPlace)).mkdirs();
- File f = new File(zipFileName);
- ZipFile zipFile = new ZipFile(zipFileName);
- if((!f.exists()) && (f.length() <= 0)) {
- throw new Exception("要解压的文件不存在!");
- }
- String strPath, gbkPath, strtemp;
- File tempFile = new File(extPlace);
- strPath = tempFile.getAbsolutePath();
- java.util.Enumeration e = zipFile.getEntries();
- while(e.hasMoreElements()){
- org.apache.tools.zip.ZipEntry zipEnt = (ZipEntry) e.nextElement();
- gbkPath=zipEnt.getName();
- if(zipEnt.isDirectory()){
- strtemp = strPath + File.separator + gbkPath;
- File dir = new File(strtemp);
- dir.mkdirs();
- continue;
- } else {
- //读写文件
- InputStream is = zipFile.getInputStream(zipEnt);
- BufferedInputStream bis = new BufferedInputStream(is);
- gbkPath=zipEnt.getName();
- strtemp = strPath + File.separator + gbkPath;
- //建目录
- String strsubdir = gbkPath;
- for(int i = 0; i < strsubdir.length(); i++) {
- if(strsubdir.substring(i, i + 1).equalsIgnoreCase("/")) {
- String temp = strPath + File.separator + strsubdir.substring(0, i);
- File subdir = new File(temp);
- if(!subdir.exists())
- subdir.mkdir();
- }
- }
- FileOutputStream fos = new FileOutputStream(strtemp);
- BufferedOutputStream bos = new BufferedOutputStream(fos);
- int c;
- while((c = bis.read()) != -1) {
- bos.write((byte) c);
- }
- bos.close();
- fos.close();
- }
- }
- } catch(Exception e) {
- e.printStackTrace();
- throw e;
- }
- }
- /**
- * 解压zip格式的压缩文件到指定位置
- * @param zipFileName 压缩文件
- * @param extPlace 解压目录
- * @throws Exception
- */
- @SuppressWarnings("unchecked")
- public synchronized void unzip(String zipFileName, String extPlace,boolean whether) throws Exception {
- try {
- (new File(extPlace)).mkdirs();
- File f = new File(zipFileName);
- ZipFile zipFile = new ZipFile(zipFileName);
- if((!f.exists()) && (f.length() <= 0)) {
- throw new Exception("要解压的文件不存在!");
- }
- String strPath, gbkPath, strtemp;
- File tempFile = new File(extPlace);
- strPath = tempFile.getAbsolutePath();
- java.util.Enumeration e = zipFile.getEntries();
- while(e.hasMoreElements()){
- org.apache.tools.zip.ZipEntry zipEnt = (ZipEntry) e.nextElement();
- gbkPath=zipEnt.getName();
- if(zipEnt.isDirectory()){
- strtemp = strPath + File.separator + gbkPath;
- File dir = new File(strtemp);
- dir.mkdirs();
- continue;
- } else {
- //读写文件
- InputStream is = zipFile.getInputStream(zipEnt);
- BufferedInputStream bis = new BufferedInputStream(is);
- gbkPath=zipEnt.getName();
- strtemp = strPath + File.separator + gbkPath;
- //建目录
- String strsubdir = gbkPath;
- for(int i = 0; i < strsubdir.length(); i++) {
- if(strsubdir.substring(i, i + 1).equalsIgnoreCase("/")) {
- String temp = strPath + File.separator + strsubdir.substring(0, i);
- File subdir = new File(temp);
- if(!subdir.exists())
- subdir.mkdir();
- }
- }
- FileOutputStream fos = new FileOutputStream(strtemp);
- BufferedOutputStream bos = new BufferedOutputStream(fos);
- int c;
- while((c = bis.read()) != -1) {
- bos.write((byte) c);
- }
- bos.close();
- fos.close();
- }
- }
- } catch(Exception e) {
- e.printStackTrace();
- throw e;
- }
- }
- /**
- * 压缩zip格式的压缩文件
- * @param inputFilename 压缩的文件或文件夹及详细路径
- * @param zipFilename 输出文件名称及详细路径
- * @throws IOException
- */
- public synchronized void zip(String inputFilename, String zipFilename) throws IOException {
- zip(new File(inputFilename), zipFilename);
- }
- /**
- * 压缩zip格式的压缩文件
- * @param inputFile 需压缩文件
- * @param zipFilename 输出文件及详细路径
- * @throws IOException
- */
- public synchronized void zip(File inputFile, String zipFilename) throws IOException {
- ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFilename));
- try {
- zip(inputFile, out, "");
- } catch (IOException e) {
- throw e;
- } finally {
- out.close();
- }
- }
- /**
- * 压缩zip格式的压缩文件
- * @param inputFile 需压缩文件
- * @param out 输出压缩文件
- * @param base 结束标识
- * @throws IOException
- */
- @SuppressWarnings("unused")
- private synchronized void zip(File inputFile, ZipOutputStream out, String base) throws IOException {
- if (inputFile.isDirectory()) {
- File[] inputFiles = inputFile.listFiles();
- out.putNextEntry(new ZipEntry(base + "/"));
- base = base.length() == 0 ? "" : base + "/";
- for (int i = 0; i < inputFiles.length; i++) {
- zip(inputFiles[i], out, base + inputFiles[i].getName());
- }
- } else {
- if (base.length() > 0) {
- out.putNextEntry(new ZipEntry(base));
- } else {
- out.putNextEntry(new ZipEntry(inputFile.getName()));
- }
- FileInputStream in = new FileInputStream(inputFile);
- try {
- int c;
- byte[] by = new byte[BUFFEREDSIZE];
- while ((c = in.read(by)) != -1) {
- out.write(by, 0, c);
- }
- } catch (IOException e) {
- throw e;
- } finally {
- in.close();
- }
- }
- }
- /**
- * 解压rar格式的压缩文件到指定目录下
- * @param rarFileName 压缩文件
- * @param extPlace 解压目录
- * @throws Exception
- */
- public synchronized void unrar(String rarFileName, String extPlace) throws Exception{
- try {
- (new File(extPlace)).mkdirs();
- // 构建测解压缩类
- Archive archive = new Archive();
- archive.setEnabledLog(false); //不输出日志
- // 设置rar文件
- archive.setFile(rarFileName);
- archive.setExtractPath(extPlace);
- archive.extractAllFile();
- } catch (Exception e) {
- // TODO: handle exception
- }
- }}
- java-unrar.zip (505.9 KB)
- 下载次数: 113
- ant.jar (1.2 MB)
- 下载次数: 40
发表评论
-
java中split要注意的问题
2010-12-31 18:06 1557java中split要注意的问 ... -
tomcat6.0 中怎么配置admin包 [转载]
2010-11-18 15:05 2209tomcat6.0 中怎么配置admin包 [转载] ... -
TOMCAT "Access to the requested resource has been denied" 的解决办法
2010-11-18 14:25 3067TOMCAT "Access to the r ... -
new Date() 时间与系统时间不相同 如何解决?
2010-11-02 10:55 2829java时区问题 问题描述:Window XP ... -
项目报错java.net.bindexception: address already in use: jvm_bind:808
2010-10-19 09:19 1667项目报错java.net.bindexception: add ... -
安装与设置JDK
2010-07-25 15:43 1916安装与设置JDK Sun JDK的安装基本 ... -
【插件控】我的Chrome插件和其他一些推荐
2010-07-22 12:07 2239【插件控】我的Chrome ... -
jdk 6 update 20
2010-06-29 22:06 1314https://cds.sun.com/is ... -
java中如何获取某个范围内的随机数
2010-06-29 14:45 3702java中如何获取某个范围内的随机数 ... -
TestNG 解决方案
2010-06-25 18:39 1738TestNG 解决方案 (2008-07-31 1 ... -
Java DTO(DataTransferObject)
2010-06-24 17:57 1636<!-- [if gte mso 9]>&l ... -
Java DTO(DataTransferObject) chendq@startimes.com.cn 分布式系统
2010-06-24 16:43 1356<!-- [if !mso]> <styl ... -
PO BO VO DTO POJO DAO概念及其作用
2010-06-24 16:39 1046PO: persistant object持久对象 最形象 ... -
J2SE 5.0 提供的简单的批注类型
2010-06-22 11:53 1485J2SE 5.0 提供的简单的批注类型 ... -
java 关于解压rar文件 代码有点问题 帮改正
2010-05-21 20:07 1773java 关于解压rar文件 代码有点问题 帮改正 问题: ... -
用java解压缩rar文件 de.innosystec.unrar解压缩rar文件
2010-05-21 19:35 3726用java解压缩rar文件 2009-10-23 14:11 ... -
java实现zip与unzip
2010-05-21 16:27 1669java实现zip与unzip 关键字: 转载自http:/ ... -
转 Java实现批量PNG图片透明合成2009-06-02分类:学习java
2010-05-20 20:34 1920转 Java实现批量PNG图片透明合成 2009-06- ... -
jdk 1.5新特性
2010-05-18 18:39 1118jdk 1.5新特性说明 2010年04月13日 星期二 1 ... -
jdk1.6新特性
2010-05-18 18:37 2629jdk1.6新特性 2010年04月13日 星期二 15:3 ...
相关推荐
在Java编程环境中,上传并...通过结合标准库和第三方库,我们可以构建一个功能完备的文件处理系统,满足上传、解压ZIP和RAR文件的需求。记得在实际开发中根据项目需求进行适当的调整和优化,确保系统的稳定性和效率。
本文将深入探讨如何使用Java实现ZIP和RAR类型的压缩与解压操作,以及相关知识点。 首先,我们来看ZIP文件格式。ZIP是一种广泛使用的文件压缩格式,其在Java中的处理主要通过`java.util.zip`包。这个包提供了多个类...
以下是一个简单的解压Zip文件的例子: ```java import java.io.*; import java.util.zip.*; public class ZipExtractor { public static void extractZip(String zipFilePath, String outputDirectory) throws ...
在Java中,处理.zip、.rar和.7z等压缩格式通常需要借助第三方库,因为Java标准库JDK并不直接支持这些格式。本文将详细介绍如何使用特定的jar包来实现对这三种压缩格式的操作。 首先,.zip格式是Java标准库支持的,...
在Java编程环境中,解压ZIP和RAR文件是常见的任务,特别是在处理数据传输、备份或集成系统时。本文将深入探讨如何使用Java实现这一功能,并提供详细的步骤和代码示例。 首先,我们来看如何使用Java来解压ZIP文件。...
在Java编程环境中,解压缩ZIP或RAR格式的文件是一项常见的任务,这主要涉及到I/O流、文件操作以及压缩和解压缩库的使用。本篇将深入讲解如何在Java中实现这个功能,同时会介绍一些相关的工具和源码。 首先,对于ZIP...
java ZIP和RAR 压缩包 目录结构。 1.ant.jar 解决java自带zip不能读取中文压缩包的问题; 2.需要安装WINRAR软件,以便解压rar文件,然后获取对应目录; 3.实现在线预览压缩包目录结构的功能;
本篇将详细讲解如何使用Java来解压ZIP和RAR文件。 首先,我们关注ZIP文件。Java标准库(Java SE)自带了`java.util.zip`包,提供了对ZIP文件的支持。`ZipInputStream`和`ZipEntry`是这个包中的核心类,用于读取和...
1. **Java解压ZIP文件**: - Java标准库提供了`java.util.zip`包,其中包含了解压缩ZIP文件所需的所有类。主要使用`ZipInputStream`和`ZipEntry`两个类。 - `ZipInputStream`是一个字节流,可以从输入流中读取ZIP...
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 = ...
这个例子展示了如何使用Apache Commons Compress库来解压RAR文件,原理与解压ZIP文件类似,只是使用的类和接口不同。 总的来说,Java处理RAR和ZIP文件的核心在于理解文件流和压缩流的概念,以及如何利用对应的API...
总结来说,Java中解压ZIP文件主要依赖`java.util.zip`包,而RAR文件则需要借助如Apache Commons Compress这样的第三方库。解压过程涉及到读取压缩文件流,创建文件或目录,以及将数据从输入流复制到输出流。这两个...
### Java对ZIP、RAR文件的压缩与解压缩技术解析 #### 概述 在实际开发过程中,文件的压缩与解压缩是一项非常常见的需求。本文将详细介绍如何使用Java语言实现ZIP和RAR格式文件的压缩与解压缩操作。文章通过具体的...
Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面,我们将详细介绍如何使用Java...
1. **Java ZIP压缩与解压缩**: Java内置的`java.util.zip`包提供了处理ZIP文件的功能。`ZipOutputStream`用于创建ZIP文件,而`ZipInputStream`则用于读取和解压。你可以通过遍历文件或目录,创建`ZipEntry`对象并...
沙漏哦2022-09-16 16:00:57原证Java解压缩文件,尤其对于Rar5.0版本的解压实现 项目描述 junrar已经不再支持Rar5版本的压缩文件。sevenzipjbinding对于Rar5压缩包的解压是调用本地7z软件进行解压的,如果本机环境...
Java中递归逻辑循环调用解压zip里面所有的压缩包 Java中递归逻辑循环调用解压zip里面所有的压缩包