方法一:truezip.jar
参阅:http://jwin.javaeye.com/blog/23859
使用java.util.zip下的类进行zip压缩,它使用的是uft-8的编码方式,这样会引起中文名变成乱码的情况,解决的方法是用truezip.jar下的类,truezip的相关介绍和下载见https://truezip.dev.java.net/
注意:CopyUtils.copy(fis,zout); 所以不推荐使用,或者相应的替代。
方法二:ant.jar (推荐使用)
参阅:http://topic.csdn.net/t/20050628/00/4108770.html
用java.util.zip制作zip压缩文件时,如果制作的压缩文件有中文文件名或中文目录,用WinZip、WinRar解压时会有乱码,同样,用java.util.zip解压WinZip、WinRar打包的压缩文件时,中文也是乱码,主要原因是因为java.util.zip使用编码和WinZip和WinRar使用的不同(java.util.zip是写死了的,只能用UTF-8),解决方法:使用Apache Ant里提供的zip工具(Ant里面可以指定编码)。
示例:
import java.io.*;
import org.apache.commons.io.CopyUtils;
import de.schlichtherle.io.FileInputStream;
import de.schlichtherle.io.FileOutputStream;
import de.schlichtherle.util.zip.ZipEntry;
import de.schlichtherle.util.zip.ZipOutputStream;
public class TestTrueZip {
public static void main(String[] args) throws Exception {
String needtozipfilepath = "E:/zip-temp/11/"; String zipfilepath = "E:/zip-temp/测试压缩-truezip.rar";
TestTrueZip test = new TestTrueZip();
test.createDownLoadZipFileByTrueZip(needtozipfilepath, zipfilepath);
}
public void createDownLoadZipFileByTrueZip(String needtozipfilepath,
String zipFileName) throws Exception {
File needtozipfile = new File(needtozipfilepath);
File zipfile = new File(zipFileName);
FileOutputStream fout = new FileOutputStream(zipfile);
ZipOutputStream zout = new ZipOutputStream(fout, "GBK"); // 解决中文问题的关键所在
try {
for (File in : needtozipfile.listFiles()) {
ZipEntry ze = new ZipEntry(in.getName());
zout.putNextEntry(ze);
FileInputStream fis = new FileInputStream(in);
try {
CopyUtils.copy(fis, zout);
} catch (IOException e) {
} finally {
if (fis != null)
fis.close();
zout.closeEntry();
}
}
} catch (IOException e) {
} finally {
if (zout != null)
{ zout.close();
fout.close();
}
}
}
}
import java.io.*;
import org.apache.tools.zip.ZipOutputStream;
public class TestAntZip {
public static void main(String arg[]) {
String srcPath = "E:/zip-temp/11/";
String outFilename = new String("E:/zip-temp/测试压缩-antzip.rar");
TestAntZip cdggzip = new TestAntZip();
cdggzip.createDownLoadZipFileByAntZip(srcPath,outFilename);
}
public void createDownLoadZipFileByAntZip(String needtozipfilepath, String zipFileName){
try {
File srcPath = new File(needtozipfilepath);
int len1 = srcPath.listFiles().length;
String[] filenames = new String[len1];
byte[] buf = new byte[1024];
File[] files = srcPath.listFiles();
for (int i = 0; i < len1; i++) {
filenames[i] = srcPath.getPath() + File.separator
+ files[i].getName();
}
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(
zipFileName));
for (int i = 0; i < filenames.length; i++) {
FileInputStream in = new FileInputStream(filenames[i]);
out.putNextEntry(new org.apache.tools.zip.ZipEntry(files[i]
.getName()));
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.closeEntry();
in.close();
}
out.close();
} catch (Exception e) {
} }
}
分享到:
相关推荐
- 类依赖性分析器:jdeps是一个新的工具,用于分析Java类文件的依赖关系,有助于理解应用程序的依赖结构。 5. Java运行时(JVM)的新特性: - 新的JVM工具:Java 8为JVM引入了新的诊断和监控工具,比如jcmd、jmc...
tar.gz文件格式是一种常见的归档文件格式,通常用于Linux和Unix环境,它将所有相关文件打包成一个压缩文件,方便用户下载和安装。 ava_engine的核心功能很可能涉及到分布式系统的设计和实现。在现代互联网服务中,...
《Python库ava_engine-0.11.2rc2详解》 在信息技术领域,Python以其简洁易读的语法和强大的库支持,成为了开发者们青睐的编程语言之一。今天我们要探讨的是一个名为ava_engine的Python库,它在版本0.11.2rc2中提供...
在Java编程语言中,处理压缩文件,特别是ZIP格式的压缩文件,是一项常见的任务。ZIP文件格式是一种广泛使用的压缩格式,可以包含多个文件和目录,并且能够有效地减小文件的存储空间。Apache Commons Compress库是...
基于Spring Boot和WxJava的微信小程序Java后端Demow_eixin-ava-miniapp-demo的实现
这个名为"ava7windows-v67.zip"的压缩包文件显然包含了与Java 7更新67(Java 7 Update 67)相关的组件,这是一次重要的更新,旨在提供性能改进、安全修复以及对新特性的支持。在描述中提到了IPAD,暗示了这个Java...
《PyPI官网下载ava_engine-0.11.0rc3.tar.gz——探索Python云原生分布式库》 PyPI(Python Package Index)是Python开发者的重要资源库,它提供了丰富的Python软件包,供全球的Python程序员下载和使用。在本文中,...
标题 "ava-testing-examples" 和描述 "ava-testing-examples ava-testing-examples" 暗示这是一个关于使用 Java 编程语言进行测试的项目,而标签 "JavaScript" 可能表明这个项目同时也涉及到 JavaScript 的测试实践...
《Python库ava_engine-0.11.3rc2:后端开发的高效工具》 在编程领域,Python因其简洁的语法和强大的功能而备受推崇,尤其在后端开发中,Python库扮演着至关重要的角色。ava_engine就是这样一款专为Python开发者设计...
ava-fast-check简化了将快速检查集成到AVA测试框架中的过程。 入门 安装ava-fast-check及其对等项依赖项: npm install --save-dev ava fast-check ava-fast-check 例子 import { testProp , fc } from 'ava-fast-...
在本项目"Java实战项目--个人资产管理系统"中,我们主要关注的是利用Java技术栈构建一个客户端/服务器(C/S)架构的应用程序,用于管理个人财务和资产。... 首先,我们需要了解C/S架构。这种架构由两部分组成:客户端...
资源分类:Python库 所属语言:Python 资源全名:ava_engine-0.11.3rc3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
AVA数据集压缩文件中包含的是整个AVA数据集,在官网下载下来的都是文本,作者手写了一个程序将一个个图片爬下来,仅供大家参考学习,如果纰漏欢迎指出。
JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib就是JVM工作所需要的类库。...
ava-fixture-docker-db 获取附加到您的ava测试上下文的新docker数据库容器 用法 import ava , { TestInterface } from 'ava' import { db , DbContext } from 'ava-fixture-docker-db' const test = ava as ...
针对这个问题,Tomcat服务器提供了多种解决方案,其中之一就是通过使用特定的jar包来处理跨域请求。这里提到的`java-property-utils-1.9.jar`并不是直接解决跨域问题的库,但它可能在配置或辅助处理跨域问题的过程中...
gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩。 Java I/O类库还收录了一些能读写压缩格式流的类。要想提供压缩功能,只要...
不可分割的实施方案,如不可分割的不可分割的部分,不可分割的不可分割的部分,不可分割的部分被称为原始的不可分割的部分。 示例: 比较价36.15雷亚尔parcelada emtrêsvezes: 1 parcela 12,00 2 parcela 12,00...
ZIP格式是一种广泛使用的压缩格式,它包含了一个或多个压缩文件或目录。开发者可以学习如何使用这些类来实现数据的压缩和解压缩。 3. **文件夹遍历**:在压缩或解压缩整个目录时,需要遍历所有子文件和子目录。Java...
这个压缩包文件"Java Basic-2015-2.zip"包含两个关键的学习资源:"Java Basic-2015-2.pptx"和"Java Basic-2015.pptx",它们很可能是PowerPoint演示文稿,用于教学或自学。 在Java编程的基础部分,我们通常会学习...