方法一: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) {
} }
}
分享到:
相关推荐
ava-8-Features java8的新特性 大家共同学习
gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩。 Java I/O类库还收录了一些能读写压缩格式流的类。要想提供压缩功能,只要...
ava-fast-check简化了将快速检查集成到AVA测试框架中的过程。 入门 安装ava-fast-check及其对等项依赖项: npm install --save-dev ava fast-check ava-fast-check 例子 import { testProp , fc } from 'ava-fast-...
python库。 资源全名:ava_engine-0.11.3rc2.tar.gz
python库。 资源全名:ava_engine-0.11.2rc2.tar.gz
资源来自pypi官网。 资源全名:ava_engine-0.6.5.tar.gz
ava-testing-examples ava-testing-examples
资源来自pypi官网。 资源全名:ava_engine-0.11.0rc3.tar.gz
基于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 ...
简单易用,功能强大的压缩代码,拿来就用,很适合新人
最新的java程序,IPAD可以用上哦你觉得呢,一定会用上的
AVA-Kinetics 数据集包含来自 AVA v2.2 的 430 个原始视频,以及来自 Kinetics-700 数据集的 238k 个视频。对于 Kinetics,我们为每个视频剪辑提供一个带注释的帧。注释以 CSV 文件的形式提供,如包含的 README.txt ...
ava实现文件上传下载功能,如:图片,文件等-java upload and download
不可分割的实施方案,如不可分割的不可分割的部分,不可分割的不可分割的部分,不可分割的部分被称为原始的不可分割的部分。 示例: 比较价36.15雷亚尔parcelada emtrêsvezes: 1 parcela 12,00 2 parcela 12,00...
ava就业项目-博客系统ava就业项目-博客系统ava就业项目-博客系统ava就业项目-博客系统
java-getopt-1.0.14.jar