java压缩文件中文名乱码问题
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
改为
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream; ant包里提供ZipOutputStream类的setEncoding("gbk")方法。 zos.setEncoding("gbk");
ant包下载(点击进入页面,另开一个新页面)
下载地址如下:
https://mvnrepository.com/artifact/org.apache.ant/ant/1.7.1 (点击进入页面,本页面被覆盖)
package file; 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 org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream; public class Zip { public static void main(String[] args) {
//文件所在路径
String path = "E:\\test";
File dir = new File(path);
if(!dir.isDirectory()) {
System.out.println(path + "--路径不存在!");
}
//所有文件
File[] files = new File(path).listFiles();
if(files == null || files.length < 1) {
System.out.println(path + "--路径下无文件!");
}
//压缩文件名
String zipname = "hello.zip";
File zipFile = new File(path + File.separator + zipname); if(zipFiles(files, zipFile) == 0) {
System.out.println("压缩文件ok!");
}
} public static int zipFiles(File[] files, File zipFile) {
if (zipFile.exists()) {
System.out.println(zipFile + "--压缩文件已存在!");
return -1;
}
BufferedInputStream bis = null;
ZipOutputStream zos = null;
try {
zos = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile)));
byte[] bufs = new byte[1024*10];
for(int i=0;i<files.length;i++){
//创建ZIP实体,并添加进压缩包
ZipEntry zipEntry = new ZipEntry(files[i].getName());
zos.putNextEntry(zipEntry);
//乱码问题
zos.setEncoding("gbk");
bis = new BufferedInputStream(new FileInputStream(files[i]), 1024*10);
int read = 0;
while((read=bis.read(bufs, 0, 1024*10)) != -1){
zos.write(bufs,0,read);
}
}
return 0;
}catch (IOException e) {
e.printStackTrace();
System.out.println("压缩文件过程BUG了!");
return -1;
} finally {
try {
if (zos != null) {
zos.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if (bis != null) {
bis.close();
}
} catch (Exception e) {
e.printStackTrace();
}
} }
}
java压缩文件中文名乱码问题的更多相关文章
- java压缩文件或文件夹并导出
java压缩文件或文件夹并导出 tozipUtil: package com.zhl.push.Utils; import java.io.File; import java.io.FileInput ...
- java压缩文件解压:调用WinRAR5命令强于自己写代码实现
最近,手上维护着一个几年前的系统,技术是用的JSP+Strust2,系统提供了rar和zip两种压缩格式的解压功能,后台是用java实现的 1.解压rar格式,采用的是java-unrar-0.3.j ...
- Java压缩文件
压缩文件 package com.iss.cpf.windmanger.userprivilegeexport.bizlogic; import java.io.BufferedInputStream ...
- linux下解压缩文件中文乱码问题的解决
在windows上压缩的文件,是以系统默认编码中文来压缩文件.由于zip文件中没有声明其编码,所以linux上的unzip一般以默认编码解压,中文文件名会出现乱码. 虽然2005年就有人把这报告为bu ...
- java 压缩文件
package folder; import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundExcept ...
- 关于TomCat上传文件中文名乱码的问题
最近在学习TomCat文件上传这一部分,由于文件上传必须要三个条件: 1.表单提交方式必须为Post 2.表单中需要有<input type="file">元素,还需要 ...
- 简单测试Demo:如何用Java压缩文件夹和文件
一.直接贴出测试代码 package com.jason.zip; import java.io.File; import java.io.FileInputStream; import java.i ...
- Java 压缩文件夹工具类(包含解压)
依赖jar <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons ...
- 一文教您如何通过 Java 压缩文件,打包一个 tar.gz Filebeat 采集器包
欢迎关注笔者的公众号: 小哈学Java, 专注于推送 Java 领域优质干货文章!! 个人网站: https://www.exception.site/essay/create-tar-gz-by-j ...
随机推荐
- Js基础知识(一) - 变量
js基础 - 变量 *大家对js一定不会陌生,入门很简单(普通入门),很多人通过网络资源.书籍.课堂等很多途径学习js,但是有些js基础的只是往往被大家遗漏,本章就从js变量类型来说一说js 变量类型 ...
- ES6迭代器和生成器
一.迭代器 JavaScript 原有的表示"集合"的数据结构,主要是数组(Array)和对象(Object),ES6 又添加了Map和Set.这样就需要一种统一的接口机制,来处理 ...
- XML文件报错dubbo:XX解决方法
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- 使用EXSI创建虚拟机
使用exsi创建虚拟主机之前需要确定好使用什么系统来创建虚拟主机,而本地电脑上的镜像服务器是无法直接使用的,我们需要先将镜像上传到服务器的存储器上,然后才能在提供给虚拟服务器使用,如何替换呢,参考下方 ...
- T78748 【lcez模拟赛】机场Ⅰ
T78748 [lcez模拟赛]机场Ⅰ 其实这就是最小生成树的题辣 注意输入毒瘤 输入的话要避免记录中间这个‘ , ’ 如下操作可以解决 特别注意%d之间的‘ , ’ 边的权值要现算 存点的话存横纵坐 ...
- cinder-----常用命令
云硬盘的创建查询 #创建卷类型 cinder type-create rbd #rbd是云硬盘类型名称,可自行定义 #查询卷类型 cinder type-list #卷类型扩展规格 cinder ty ...
- python调用不同目录中类的终极方法
1.在需要导入别的类包中加入这两行代码 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))sys.path.a ...
- malloc分配内存进行对齐的操作
昨天面试高通Linux Kernel,面试官考了一个malloc内存对齐的问题,我晚上的时候细细的想了一下,实在是学习的不到位. 有的时候真的应该感谢,像是Qt.Ubuntu Gcc的编译器,他们做的 ...
- Go(03) slice切片的使用
原文链接 http://www.limerence2017.com/2019/05/08/golang05/#more golang 的引用类型和内置类型变量 golang 中变量类型分为引用类型和值 ...
- 关于java中设计原则总结(7)
开闭原则: 对于类,模块函数等扩展要开放,对于修改要关闭. 依赖倒置: 接口或抽象是高层,要面向高层编程,不应该面向实现类(实现类是低层)去变成. 单一职责: 对一个类,或者一个功能,只用负责一个职责 ...