`

java压缩----使用ANT JDK压缩---解决中文问题

 
阅读更多
import java.io.File;
import java.io.IOException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Expand;
import org.apache.tools.ant.taskdefs.Zip;
import org.apache.tools.ant.types.FileSet;

/**
 * @author 压缩指定的目录以及解压指定的压缩文件(仅限ZIP格式).
 */
public class ZipUtils {
	public final static String encoding = "GBK";   

	/**
	 * 1.可以压缩目录(支持多级)<br>
	 * 2.可以压缩文件<br>
	 * 3.如果压缩文件的路径或父路径不存在, 将会自动创建<br>
	 * 
	 * @param src
	 *            将要进行压缩的目录
	 * @param zip
	 *            最终生成的压缩文件的路径
	 */
	public static void zip(File src, File dest) throws IOException {
		Project prj = new Project();
		Zip zip = new Zip();
		zip.setProject(prj);
		zip.setDestFile(dest);
		FileSet fileSet = new FileSet();
		fileSet.setProject(prj);
		if (src.isFile()) {
			fileSet.setFile(src);
		} else {
			fileSet.setDir(src);
		}
		zip.addFileset(fileSet);
		zip.execute();
	}

	/**
	 * 将指定的压缩文件解压到指定的目标目录下. 如果指定的目标目录不存在或其父路径不存在, 将会自动创建.
	 * 
	 * @param zip
	 *            将会解压的压缩文件
	 * @param dest
	 *            解压操作的目录目录
	 */
	public static void unzip(File src, File dest) throws IOException {
		Project proj = new Project();
		Expand expand = new Expand();
		expand.setProject(proj);
		expand.setTaskType("unzip");
		expand.setTaskName("unzip");
		expand.setSrc(src);
		expand.setDest(dest);
		expand.setEncoding(encoding);//设置编码不能少,少了文件名会有乱码
		expand.execute();
	}

	



	public static void main(String[] args) {
		// D:\\evidence\\20120712\\重生回到1997_2012071213114144\\言情小说吧_www.xs8.cn
		try {
			ZipUtils
					.zip(
							new File(
									"D:\\evidence\\20120712\\重生回到1997_2012071213114144\\言情小说吧_www.xs8.cn"),
							new File(
									"D:\\evidence\\20120712\\重生回到1997_2012071213114144\\言情.zip"));
			
			
			
			ZipUtils
			.unzip(new File(
			"D:\\evidence\\20120712\\重生回到1997_2012071213114144\\言情.zip"),new File(
			"D:\\test\\"));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

 

分享到:
评论
3 楼 ijlkdwg 2013-02-19  
你把那个.jar 包共享出来呀!
2 楼 qingfeng825 2012-07-31  
不好意思啊,我只在window下试着没有问题,没有在linux上测试
1 楼 Gosi_ 2012-07-27  
把编码改成gbk以后在windows下中文文件名不会再乱码,但是放到linux上还是会乱码,不知道博主有没有测试过,我现在遇到了这样的问题。

相关推荐

    JDK ZipEntry压缩中文文件名乱码解决

    项目中碰到问题.jdk zipEntry 压缩中文文件名乱码  上网查了下,有两种方法,一种修改jdk ZipInputStream及ZipOutputStream 的源文件,比较麻烦,不建议此项.  第二种 就是拿来主义,因为 开源项目 Ant 里已经有...

    apache-ant-zip.jar包及用法

    apache-ant-zip.jar包及用法 用过java做压缩或解压的都知道,jdk提供的zip只能按UTF-8格式处理,所有jdk提供的zip不能支持中文文件名,可以采用Apache的zip包解决中文文件名问题。

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

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

    ant使用基础啊

    跨平台 --因为ant是使用java实现的,所以它跨平台 使用简单--与ant的兄弟make比起来 语法清晰--同样是和make相比 功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有多少功能。当你自己开发一些ant...

    新版Android开发教程.rar

    的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...

    轻量级Java EE企业应用开发实战 源码 chapters 02

    (2) 安装Apache的Tomcat 6.0.16,不要使用安装文件安装,而是采用解压缩的安装方式。 安装Tomcat请参看第1章。安装完成后,将Tomcat安装路径的lib下的jsp-api.jar和servlet-api.jar两个JAR文件添加到CLASSPATH环境...

    轻量级Java EE企业应用开发实战 源码 chapters 10

    (2) 安装Apache的Tomcat 6.0.16,不要使用安装文件安装,而是采用解压缩的安装方式。 安装Tomcat请参看第1章。安装完成后,将Tomcat安装路径的lib下的jsp-api.jar和servlet-api.jar两个JAR文件添加到CLASSPATH环境...

    轻量级Java EE企业应用开发实战 源码 chapters 01

    (2) 安装Apache的Tomcat 6.0.16,不要使用安装文件安装,而是采用解压缩的安装方式。 安装Tomcat请参看第1章。安装完成后,将Tomcat安装路径的lib下的jsp-api.jar和servlet-api.jar两个JAR文件添加到CLASSPATH环境...

    java6.0源码-vanilla1:不再支持或维护Vanilla1。改用香草2:

    java6.0源码Vanilla 1 开发已经结束 请使用 升级到 . 请参阅 了解更多信息。 Vanilla 1 不再针对安全问题进行审查或以任何方式进行维护。 本资料库仅供历史参考。 建筑香草 1 对于生产,您可能想要构建 Vanilla; ...

    Liferay_Portal_6.1源码导入到eclipse

    安装 JDK,并设置环境变量:JAVA_HOME 为 D:\Java\jdk1.7.0_07,path 中添加 %JAVA_HOME%\bin; CLASSPATH 为 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar; Ant 是一个基于 Java 的构建工具,用于自动化构建...

    ant_junitc测试

    ant运行需要JAVA_HOME环境变量(JAVA_HOME变量的值就是JDK的安装目录,笔者的机器上就是D:\Java\jdk1.6.0_29。配置方式与ANT_HOME、CATALINA_HOME一致),和配置它自己的ANT_HOME环境变量,此变量的值就是ant的安装...

    gradle-7.1.1.zip

    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,该压缩文件包含gradle-7.1.1-bin.zip、官网下载地址和init.gradle,欢迎下载!

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    全书一共被压缩为5个rar,这是第二个!!!! 其他的请看ID:ljtt123(本人...21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

    tools-1.8.0_181.jar.zip

    上传的tools.jar的版本号为1.8.0_181,是一个zip压缩文件,解压就可以 而自己安装jdk的tools.jar在jdk下的lib中 jdk和jre的区别: Jre是运行环境,及编译后的java程序运行时只需要jre就行了; jdk是开发环境,当...

    struts2.0 第五章 第1,2节

    其中JAVA_HOME代表JDK(不是JRE,不是J2EE)的安装路径;J2EE_HOME指J2EE SDK安装路径——在系统中增加JAVA_HOME和J2EE_HOME两个环境变量。 2.保证在d:盘根路径下安装Apache的Tomcat 5.5.20,不要使用安装文件安装...

    XP开发模式:第一个最简单的Web Servlet应用演示例子

    如果有问题,欢迎mail联系:arklis@126.com&lt;br&gt;运行环境是Window XP Professional SP2. 使用Tomcat 6.0, JDK 1.6, Xdoclet 1.2.3, Ant 1.7完成的第一个web工程演示应用。为完成这个例子,需要把log4j.jar文档...

    TestNG安装包

    TestNG是一个Java的框架,所以第一个要求是JDK要安装在你的机器上。 系统要求 JDK 1.5或以上 内存 没有最低要求 磁盘空间 没有最低要求 操作系统 没有最低要求 步骤1 -验证Java安装在你的机器上 现在,打开...

    struts 2.0 源码 第三章

    其中JAVA_HOME代表JDK(不是JRE,不是J2EE)的安装路径;J2EE_HOME指J2EE SDK安装路径——在系统中增加JAVA_HOME和J2EE_HOME两个环境变量。 2.保证在d:盘根路径下安装Apache的Tomcat 5.5.20,不要使用安装文件安装...

    Java Zip文件解压缩

     经过两天的努力检验了无数的code终于让我找到一个还能用的可以解决中文乱码问题。  这个项目用maven构建的依赖jar坐标如下  &lt;!– 用于zip文件解压缩 –&gt;    &lt;groupId&gt;ant  &lt;artifactId&gt;ant  ...

    java笔试题目-citrus:专注于消息传递集成的自动化集成测试框架

    java笔试题目柑橘集成测试 欢迎来到柑橘 Citrus 是一个用 Java 编写的测试框架,能够为企业 SOA 应用程序创建完全自动化的端到端用例测试。 Citrus 模拟周围的接口合作伙伴,支持大量不同的传输和协议,如 Http、JMS...

Global site tag (gtag.js) - Google Analytics