- 浏览: 39125 次
- 性别:
- 来自: 台州
最新评论
使用apache ant.tools.zip来打包和解压缩。
package zip;
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration; import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream; import org.apache.commons.compress.utils.IOUtils; import org.apache.tools.ant.util.FileUtils; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipFile; import org.apache.tools.zip.ZipOutputStream; /** * * @author Administrator cph * */ public class ZipUtils { ZipFile zipFile = null; ZipEntry zipEntry = null; File temp = null; private OutputStream out = null; private BufferedOutputStream bos = null; private ZipOutputStream zos = null; /** * * @param zipName 需要解压的文件 * @param zipPath 解压存储路径 * @throws Exception */ public void unZip(String zipName,String zipPath) throws Exception{ FileOutputStream fos; InputStream is; String path1 = ""; String tempPath = ""; if(!new File(zipPath).exists()){ new File(zipPath).mkdir(); } zipFile = new ZipFile(zipName); temp = new File(zipPath); String strPath = temp.getAbsolutePath(); Enumeration<Object> enu = zipFile.getEntries(); while(enu.hasMoreElements()){ zipEntry = (ZipEntry) enu.nextElement(); path1 = zipEntry.getName(); if(zipEntry.isDirectory()){ tempPath = strPath+File.separator+path1; File dir = new File(tempPath); dir.mkdirs(); continue; } else{ is = zipFile.getInputStream(zipEntry); BufferedInputStream bis = new BufferedInputStream(is); path1 = zipEntry.getName(); tempPath = strPath+File.separator+path1; String subdirtemp = path1; for(int i=0;i<subdirtemp.length();i++){ if(subdirtemp.substring(i, i+1).equalsIgnoreCase("\\")){ String tempstr = strPath+File.separator+subdirtemp.substring(0,i); File subdir = new File(tempstr); if(!subdir.exists()){ subdir.mkdir(); } } } fos = new FileOutputStream(tempPath); BufferedOutputStream bos = new BufferedOutputStream(fos); // int c ; // while((c = bis.read())!=-1){ // bos.write(c); // } IOUtils.copy(bis, bos); bis.close(); bos.close(); } } } public void close() throws IOException{ this.zos.flush(); this.zos.close(); this.bos.flush(); this.bos.close(); this.out.flush(); this.out.close(); } /** * * @param zipfileName 打包后文件的名称,含路径 * @param filePath 需要打包的文件夹或者文件的路径 * @param pathName 打包到pathName文件夹下 * @throws Exception */ public void doZip(String zipfileName,String filePath,String pathName) throws Exception{ File f = new File(zipfileName); this.out = new FileOutputStream(f); this.bos = new BufferedOutputStream(out); this.zos = new ZipOutputStream(bos); this.zos.setEncoding("GBK"); File file = new File(filePath); if (!"".equals(pathName) && null != pathName) { pathName = pathName + File.separator; } else { pathName = f.getName().substring(0, f.getName().length() - 4) + File.separator; } doZip(zos,filePath,pathName); close(); } private void doZip(ZipOutputStream zos, String file, String pathName) throws IOException { File file2zip = new File(file); if (file2zip.isFile()) { zos.putNextEntry(new ZipEntry(pathName + file2zip.getName())); IOUtils.copy(new FileInputStream(file2zip.getAbsolutePath()), zos); zos.closeEntry(); } else { File[] files = file2zip.listFiles(); if (files.length < 1 || files == null) { return; } else { for (File f : files) { if (f.isDirectory()) { doZip(zos, f.getAbsolutePath(), pathName+f.getName()+File.separator); } else { zos.putNextEntry(new ZipEntry(pathName + f.getName())); IOUtils.copy(new FileInputStream(f.getAbsolutePath()), zos); zos.closeEntry(); } } } } } public static void main(String[] args) throws Exception { ZipUtils tzp = new ZipUtils(); // tzp.doZip("c:/aaab.zip", "d:/a/111.ppt", ""); tzp.unZip("c:\\aaab.zip", "d:\\abc\\"); } }
- apache-ant-1.8.3-bin.zip (7.7 MB)
- 下载次数: 40
发表评论
-
httpclient重定向和post
2012-07-10 15:55 2292有些登陆需要涉及到重定向登录虾米音乐网的例子httpcli ... -
poi:无法获取公式值
2012-06-01 09:16 2211有时候用cell.getNumericCellValue()无 ... -
通过set移除list相同项
2012-03-21 11:51 1145今天按照boss的要求做的时候,遇到了一个问题。boss一条记 ... -
compress 解压缩
2012-03-13 17:02 2121主要用到了apach commons里 ... -
改变ie查看源代码的打开方式
2012-02-22 09:47 1422更改IE的“查看源代码”打开的编辑器--notepa ... -
又简单又好用的同步控制
2012-02-21 10:45 798上代码 package com.enfang; /** ... -
struts2接收前台参数的3个方法
2012-02-10 09:18 388001.public class GetRequestParam ... -
DBCP的使用
2012-01-31 10:40 1030反正是工具类,直接上代码吧。复制一下就可以用了 pac ... -
邮件抓取器的实现
2012-01-19 14:16 909朋友要一个邮件抓取器 ... -
java map的遍历
2012-01-19 11:36 775有时候需要对map进行排序,什么会进行对map的遍历,以下是对 ... -
JOptionPane JOptionPane
2012-01-16 14:35 938package T1; import jav ... -
httpClient的使用
2012-01-13 13:42 905httpClient的简单使用方法(代理方式的)。 p ... -
FileUpload
2012-01-11 15:49 788以下为apache fileupload的使用。 先一个se ... -
poi :合并excel的单元格
2011-12-19 15:32 1225// 合并单元格 从左上角合并到右下角 ... -
HtmlPaser与StringEscapeUtils共舞抓取网页
2011-12-13 14:48 1516用正则来匹配的确很强大,但如果是网页的话HtmlPaser更方 ... -
jacob:no jacob-1.15-M4-x86 in java.library.path
2011-12-13 13:37 2644今天遇到一个很蛋疼的问题,生成ppt的时候老抱no jacob ...
相关推荐
- `unzip`: 解压缩ZIP文件到指定的目录。 - `zip`: 创建新的ZIP文件,可以包含文件和目录。 - ` zipfileset`: 在Zip任务中定义文件集,可以包含过滤器来选择特定的文件。 - `updatezip`: 更新现有ZIP文件,添加或...
总的来说,利用Apache Ant的ant.jar库,无论是通过Java代码还是Ant构建文件,都能方便、高效地解压缩ZIP文件,而且对于包含中文文件名的情况,它提供了良好的支持。在实际开发中,理解并熟练运用这类工具可以极大地...
Java自带的解压缩不支持中文路径,此开发包支持中文的解压缩
Apache Ant 是一个开源的构建工具,广泛用于Java项目构建,由Apache软件基金...通过解压缩此ZIP文件并配置环境变量,用户可以利用Ant执行各种项目构建任务。详细的使用方法和特性可通过提供的readme.txt文件进行查阅。
这通常意味着解压缩后,你会得到一个名为"apache-ant-1.10.11"的目录,里面包含了Ant的所有组件,如bin目录(包含可执行脚本如`ant`和`ant.bat`),lib目录(包含Ant运行所需的jar文件),以及其他的文档、许可证和...
解压缩ZIP文件主要涉及`java.util.zip.ZipInputStream`和`org.apache.tools.zip.ZipEntry`。以下是一般过程: - 创建`ZipInputStream`对象,基于一个输入流(如FileInputStream),指向ZIP文件。 - 循环读取ZIP...
在Apache Ant中,`Expand`任务用于解压缩ZIP、TAR或GZIP格式的文件。以下是一个使用Java API实现的自定义解压缩示例,虽然这不是直接使用Ant的XML配置,但可以作为理解Ant处理压缩文件原理的一个起点: ```java ...
标题提到的"java解压缩zip代码与用到的jar包"主要涉及了Java对ZIP文件的操作,以及一个名为`ant.jar`的第三方库。`ant.jar`是Apache Ant的核心库,它是一个基于Java的任务执行工具,广泛用于构建项目,其中包含了...
解压缩ZIP文件的过程则使用`ZipInputStream`: ```java import java.io.*; import java.util.zip.*; public class JavaUnzip { public static void main(String[] args) { try { File destinationDirectory = ...
1. 解压缩"apache-ant-1.9.4-bin.zip"到你选择的目录。 2. 将解压后的目录添加到系统的PATH环境变量中,这样命令行就能识别"ant"命令。 3. 验证安装是否成功,通过命令行输入"ant -version",如果显示Apache Ant的...
总的来说,Apache Ant 1.7.0.jar提供了解决Android ZIP解压中文乱码问题的功能,通过自定义解压字符编码,如设置为UTF-8,可以确保中文文件名在解压缩过程中的正确性。而`ZipEntry`是Java处理ZIP文件的核心类,虽然...
3. **解压缩文件**:创建一个`ZipArchiveInputStream`,然后使用`getNextZipEntry`方法遍历并读取ZIP文件中的每一个条目,解压缩到目标目录。 4. **处理中文文件名**:Apache Commons Compress库自动处理Unicode...
解压缩ZIP文件时,可以使用Ant的`<unzip>`任务。下面是如何使用`<unzip>`任务解压缩`output.zip`到指定目录: ```xml <unzip src="output.zip" dest="dest"/> ``` 这里,`src`属性指定了要解压缩的ZIP文件,而`...
- **解压缩任务**:使用`unzip`任务可以解压缩Zip文件到指定的目标目录。 - **Ant脚本**:Ant通过XML格式的构建文件来定义任务,这使得整个过程可配置且易于自动化。 在实际应用中,如果你的项目依赖于这两个库,...
解压缩ZIP文件同样简单,只需要定义一个`unzip`任务。例如: ```xml <unzip src="input.zip" dest="destinationFolder"/> ``` 这会将`input.zip`解压缩到`destinationFolder`目录。 **高级用法:** Apache Ant...
这种方法利用了Apache Ant库中的`org.apache.tools.zip.ZipFile`类来实现解压功能。在实际应用中,这种方法非常实用,尤其是在需要处理复杂ZIP文件结构的情况下。 #### 方法参数 该方法接受三个参数: 1. **old...
Ant使用了自己的实现来处理ZIP文件,其内部的`org.apache.tools.ant.types.ZipFileSet`和`org.apache.tools.ant.taskdefs.Zip`类在处理包含中文文件名的ZIP时表现得更为友好。Ant默认使用UTF-8编码,所以它能更好地...
同时,Ant也提供了`<unzip>`任务,用于解压缩Zip文件,这对于处理依赖库或资源文件非常有用。 例如,如果你有一个包含Java源代码和相关资源的项目,你可以用Ant构建一个Jar文件,然后将它与依赖库一起打包到Zip文件...
在这个场景中,我们提到的"java 自动解压缩"可能涉及到一个Java程序,它能够自动化地对ZIP或GZIP格式的压缩文件进行解压。此外,提到了`ant.jar`,这是Apache Ant工具的库,它是一个基于Java的任务执行框架,常用于...