- 浏览: 985656 次
- 性别:
- 来自: 山西
-
文章分类
最新评论
-
白小默:
你好 可以提供下源码DEMO吗,不知为何,我导出来的excel ...
jxls 使用模板文件导出生成excel -
zkzqzzz:
博主威武!
让微信二维码扫描您的APK -
zkzqzzz:
感谢博主 原来那些类都不是必须的 或者自己写!!博主真棒 ...
抢红包插件实现原理浅析 -
zkzqzzz:
博主 请问你的其他类在哪里呢?
抢红包插件实现原理浅析 -
zkzqzzz:
其他类在哪呢?
抢红包插件实现原理浅析
用到了ant.jar来解决压缩中的中文乱码问题。
package unzip;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import org.apache.tools.zip.ZipOutputStream;
/**
* 功能: 1 、实现把指定文件夹下的所有文件压缩为指定文件夹下指定 zip 文件 2 、实现把指定文件夹下的 zip 文件解压到指定目录下
*
* @author ffshi
*
*/
public class ZipUtils {
public static void main(String[] args) {
// 把 E 盘正则表达式文件夹下的所有文件压缩到 E 盘 stu 目录下,压缩后的文件名保存为 正则表达式 .zip
// zip ("E:// 正则表达式 ", "E://stu // 正则表达式 .zip ");
// 把 E 盘 stu 目录下的正则表达式 .zip 压缩文件内的所有文件解压到 E 盘 stu 目录下面
unZip ( "E://stu// 正则表达式 .zip" , "E://stu" );
}
/**
* 功能:把 sourceDir 目录下的所有文件进行 zip 格式的压缩,保存为指定 zip 文件 create date:2009- 6- 9
* author:Administrator
*
* @param sourceDir
* E:// 我的备份
* @param zipFile
* 格式: E://stu //zipFile.zip 注意:加入 zipFile 我们传入的字符串值是
* : "E://stu //" 或者 "E://stu "
* 如果 E 盘已经存在 stu 这个文件夹的话,那么就会出现 java.io.FileNotFoundException: E:/stu
* ( 拒绝访问。 ) 这个异常,所以要注意正确传参调用本函数哦
*
*/
public static void zip(String sourceDir, String zipFile) {
OutputStream os;
try {
os = new FileOutputStream(zipFile);
BufferedOutputStream bos = new BufferedOutputStream(os);
ZipOutputStream zos = new ZipOutputStream(bos);
File file = new File(sourceDir);
String basePath = null ;
if (file.isDirectory()) {
basePath = file.getPath();
} else {
basePath = file.getParent();
}
zipFile (file, basePath, zos);
zos.closeEntry();
zos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
*
* create date:2009- 6- 9 author:Administrator
*
* @param source
* @param basePath
* @param zos
* @throws IOException
*/
private static void zipFile(File source, String basePath,
ZipOutputStream zos) {
File[] files = new File[0];
if (source.isDirectory()) {
files = source.listFiles();
} else {
files = new File[1];
files[0] = source;
}
String pathName;
byte [] buf = new byte [1024];
int length = 0;
try {
for (File file : files) {
if (file.isDirectory()) {
pathName = file.getPath().substring(basePath.length() + 1)
+ "/" ;
zos.putNextEntry( new ZipEntry(pathName));
zipFile (file, basePath, zos);
} else {
pathName = file.getPath().substring(basePath.length() + 1);
InputStream is = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(is);
zos.putNextEntry( new ZipEntry(pathName));
while ((length = bis.read(buf)) > 0) {
zos.write(buf, 0, length);
}
is.close();
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 解压 zip 文件,注意不能解压 rar 文件哦,只能解压 zip 文件 解压 rar 文件 会出现 java.io.IOException: Negative
* seek offset 异常 create date:2009- 6- 9 author:Administrator
*
* @param zipfile
* zip 文件,注意要是正宗的 zip 文件哦,不能是把 rar 的直接改为 zip 这样会出现 java.io.IOException:
* Negative seek offset 异常
* @param destDir
* @throws IOException
*/
public static void unZip(String zipfile, String destDir) {
destDir = destDir.endsWith( "//" ) ? destDir : destDir + "//" ;
byte b[] = new byte [1024];
int length;
ZipFile zipFile;
try {
zipFile = new ZipFile( new File(zipfile));
Enumeration enumeration = zipFile.getEntries();
ZipEntry zipEntry = null ;
while (enumeration.hasMoreElements()) {
zipEntry = (ZipEntry) enumeration.nextElement();
File loadFile = new File(destDir + zipEntry.getName());
if (zipEntry.isDirectory()) {
// 这段都可以不要,因为每次都貌似从最底层开始遍历的
loadFile.mkdirs();
} else {
if (!loadFile.getParentFile().exists())
loadFile.getParentFile().mkdirs();
OutputStream outputStream = new FileOutputStream(loadFile);
InputStream inputStream = zipFile.getInputStream(zipEntry);
while ((length = inputStream.read(b)) > 0)
outputStream.write(b, 0, length);
}
}
System. out .println( " 文件解压成功 " );
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
也顺便网上查了下rar格式与zip格式有什么区别:
区别一、zip的安装比较大,并仅仅有英文版+汉化包 rar有官方的简体中文版,并且安装很小,不足一兆 区别二、winrar的压缩率较高,而zip的压缩率更低 区别三、zip支持的格式很多,但已经较老,不大流行 rar支持格式也很多,并且还是流行的 区别四、zip仅仅能够压缩成zip格式,不能解压rar格式;rar不仅有自己的格式,还可以压缩成zip格式并解压zip格式 区别五、zip的界面没有rar漂亮 区别六、winrar支持分卷压缩,zip不支持 区别七、国外很多都采用zip,因为它是免费的,rar不是免费的,在国内很流行是由于有盗版的存在;zip不能兼容rar,是因为这样必须付出一笔费用 WinRAR 可以创建两种不同的压缩文件格式: RAR 和 ZIP ZIP 压缩文件 在 ZIP 文件的最大优点就是普及率。比如说,大部分在 Internet 的压缩文件都是 ZIP 压缩文件,所以如果你要传送压缩文件给某一个人,但你无法确定你的收件人是否有 WinRAR 来解压压缩文件的内容时,使用 ZIP 格式是个好推荐。要不然你也可以发送 自解压文件。此类的压缩文件稍微大了一点点,但不需要任何的外部程序便可以解压。 另一个 ZIP 的优点便是速度。 ZIP 压缩文件通常在创建时会比 RAR 快一些。 RAR 压缩文件 RAR 格式比 ZIP 更能够提供较好的压缩率,特别是在 固实模式 时。另外一个 RAR 的重要功能是支持 多卷 压缩文件。它们比起 ZIP 的“跨磁盘”压缩文件更加便利和简易。 WinRAR 不支持 ZIP 的磁盘拆分,如果你要创建分卷压缩文件,请使用 RAR 的分卷压缩来代替。 RAR 格式也有一些在 ZIP 中所缺乏的重要功能,例如 恢复记录,它允许物理受损数据的恢复,还能 锁定 重要的压缩文件,以防止它们被别人意外地更改。 RAR 格式可以管理的文件大小几乎是无限制的 (最大到 8,589,934,591 GB) ,而在 ZIP 压缩文件的单个文件的最大值为 4 GB。需注意的是,旧式的文件
发表评论
-
java通过sftp JSch 上传文件下载文件查看文件目录,测试可用
2019-12-19 18:19 1005基于maven ... -
服务器之间的 zip 文件定时传送
2019-12-19 10:28 5331、expect 安装 将expect和tcl的软 ... -
Java/web/jsp根据pdf模板生成荣誉证书PDF文件
2019-07-19 14:48 10001.前言 最近博主在 ... -
Java生成荣誉证书PDF文件
2019-07-19 13:08 1427Java生成荣誉证书PD ... -
百度云API刷脸
2019-07-13 11:41 649刷脸登录是基于人工智能、生物识别、3D传感、大数据风控技术, ... -
maven--maven配置多个源文件夹
2019-06-13 21:32 949需求 Maven 为我们提供了一致的项目目录配置(源文件 ... -
绿盟检测出“检测到目标URL存在http host头攻击漏洞”如何解决
2019-06-09 10:00 1031绿盟检测出“检测到目标URL存在http host头攻击漏 ... -
Linux安装apache及其简单的反向代理配置
2019-06-07 09:06 659Apache简介 Apache HTTP Se ... -
Linux二进制安装apache2.4.25
2019-06-07 09:06 726Linux二进制安装apache2.4. ... -
weblogic配置https,http自动跳转转https,ssl
2019-05-21 09:44 969最近,公司要求将http ... -
bootstrap-table组合表头
2019-03-06 10:04 927bootstrap-table组合表头 ... -
[Weblogic]如何清理缓存
2019-03-04 15:23 865[Weblogic]如何清理缓存 ... -
Guns第十节Swagger的讲解
2019-01-23 16:51 6612018年08月01日 15:54:30 ze ... -
Anaconda详细安装使用教程
2019-01-22 15:07 637关注微信公众号【Mi ... -
Windows系统下Eclipse上搭建Python开发环境
2019-01-22 15:00 336Windows系统下Eclipse上搭 ... -
Python 3.6 中使用pdfminer解析pdf文件
2019-01-22 14:50 945所使用python环境为最新 ... -
Python提取PDF内容(文本、图像、线条等)
2019-01-22 14:43 7556使用Python抽取PDF文件内 ... -
用python解析pdf中的文本与表格【pdfplumber的安装与使用】
2019-01-22 14:40 1549我们接触到的很多文档资料都是以pdf格式存在的,比如:论文, ... -
java实现PDF转HTML
2019-01-21 10:14 943java实现PDF转HTML 问题场景: ... -
JAVA PDFBOX 读取PDF表格
2019-01-18 17:39 3033最近在帮公司做工具,需要读取PDF中表格的数据。网上查了, ...
相关推荐
总的来说,利用Apache Ant的ant.jar库,无论是通过Java代码还是Ant构建文件,都能方便、高效地解压缩ZIP文件,而且对于包含中文文件名的情况,它提供了良好的支持。在实际开发中,理解并熟练运用这类工具可以极大地...
### JAVA解压ZIP多层目录文件(需ant.jar) #### 概述 本文将详细介绍一个Java方法,该方法用于解压包含多层目录结构的ZIP文件,并能够支持中文文件名。这种方法利用了Apache Ant库中的`org.apache.tools.zip....
在Java中,我们通常使用`ZipOutputStream`来创建ZIP文件,`ZipInputStream`来读取和解压缩文件。下面是一个简单的压缩文件到ZIP的例子: ```java import java.io.*; import java.util.zip.*; public class JavaZip...
例如,你可以使用Ant的`<zip>`任务来创建ZIP文件,通过指定`encoding`属性来解决中文乱码问题: ```xml <zip destfile="output.zip" encoding="UTF-8"> **/*"/> </zip> ``` 在这个Ant脚本中,`<zip>`...
Java操作Zip文件主要涉及到对文件和目录的压缩与解压缩,以及在必要时对压缩文件进行加密处理。这里我们重点讨论使用两个库:`zip4j`和`Apache Ant`来实现这些功能。 1. **zip4j库**:`zip4j-1.3.2.jar`是一个用...
org.apache.tools.ant.taskdefs.Java org.apache.tools.ant.taskdefs.Move org.apache.tools.ant.taskdefs.Nice org.apache.tools.ant.taskdefs.Pack org.apache.tools.ant.taskdefs.Rmic org.apache.tools.ant...
标题提到的"java解压缩zip代码与用到的jar包"主要涉及了Java对ZIP文件的操作,以及一个名为`ant.jar`的第三方库。`ant.jar`是Apache Ant的核心库,它是一个基于Java的任务执行工具,广泛用于构建项目,其中包含了...
本文将深入探讨如何使用Java来处理ZIP文件,特别是针对标题所提及的“java 中 zip压缩文件解压工具类”。我们将讨论核心的Java API,如`java.util.zip`包中的类,并通过一个名为`CompressFileUtils`的工具类来展示...
总的来说,"apache-ant-zip.jar"和"ZipUtil.java"为开发者提供了解决中文乱码问题的工具和方法,使得在使用Apache Ant进行构建过程中,可以正确地处理包含中文文件名的ZIP文件,从而提高项目的可移植性和用户体验。...
Apache Ant Zip 2.3.jar 特别关注的是处理ZIP文件格式的操作,包括创建、解压和操作ZIP档案中的文件。这个特定的版本2.3可能包含了一些特定的修复或功能改进相对于之前的版本。由于在Maven仓库中找不到这个特定的...
标题中的"ant-zip-1.7.1.jar.zip"是一个压缩文件,它包含了名为"ant-zip-1.7.1.jar"的Java档案(JAR)文件以及"ant.license.txt"的许可文件。这个JAR文件是Apache Ant项目的一部分,用于处理ZIP归档操作。 Apache ...
在使用Java对ZIP压缩文件进行解压的方式中有两种,一种是使用apache提供的ant.jar工具包,但是如果ZIP文件中含有中文名称的文件,在解压后,文件名将出现乱码,另一种是使用Java自身JDK中java.util.zip包下工具类,...
解决java压缩zip文件时的中文乱码问题 实现:java压缩文件成zip实现无乱码。 包括:写好的工具类与jar包。...使用方法:导入ant.jar包,调用CompressExcelOperate中的方法,即可实现压缩文件,并保证没有中文乱码。
例如,`<javac>`任务用于编译Java源代码,`<jar>`任务则用于创建JAR文件,这正是我们在压缩包中看到的`ant-1.6.5.jar`文件。 `ant-1.6.5.jar`是Ant 1.6.5的主库,包含了所有执行构建任务所需的类和资源。这个JAR...
"处理解压问题jar.zip"这个标题暗示我们可能遇到了一个特定的解压缩问题,特别是在尝试解压一个名为“jar.zip”的文件时。描述中提到的异常信息 "only DEFLATED entries can have EXT descriptor" 是一个与ZIP文件...
标题中的"ant.jar.zip"指的是包含Ant库的压缩文件,该文件是Java开发人员进行自动化构建过程所必需的。Ant的核心是一个名为"ant.jar"的JAR(Java Archive)文件,它是Apache Ant项目的主要组件,而"ant.license.txt...
1. 下载"ant-installer.jar.zip"并解压到一个合适的目录。 2. 使用Java运行环境(JRE)运行"ant-installer.jar"。在命令行中,你可以输入`java -jar ant-installer.jar`,这将启动Ant的安装向导。 3. 按照向导提示,...
总结,"ant-dependencies.jar.zip"是一个包含了Ant运行所必需的依赖库的压缩文件,配合"ant.license.txt",为开发者提供了一个便捷、合规的方式来使用和集成Apache Ant。理解和掌握Ant的使用,以及依赖库的管理,...
标题中的"ant-bootstrap.jar.zip"是一个压缩文件,它包含了与Apache Ant和Bootstrap相关的资源。Apache Ant是一个由Apache软件基金会开发的Java库和命令行工具,主要用于构建Java项目。它的核心概念是基于XML的构建...
3. **解压缩文件**:与压缩相反,`unzipFiles()`方法可能利用`ZipInputStream`来读取ZIP文件并解压到指定目录。通过循环遍历输入流中的每个`ZipEntry`,创建对应的目标文件,然后将其内容复制出来。 4. **路径和...