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压缩文件中文名乱码问题的更多相关文章

  1. java压缩文件或文件夹并导出

    java压缩文件或文件夹并导出 tozipUtil: package com.zhl.push.Utils; import java.io.File; import java.io.FileInput ...

  2. java压缩文件解压:调用WinRAR5命令强于自己写代码实现

    最近,手上维护着一个几年前的系统,技术是用的JSP+Strust2,系统提供了rar和zip两种压缩格式的解压功能,后台是用java实现的 1.解压rar格式,采用的是java-unrar-0.3.j ...

  3. Java压缩文件

    压缩文件 package com.iss.cpf.windmanger.userprivilegeexport.bizlogic; import java.io.BufferedInputStream ...

  4. linux下解压缩文件中文乱码问题的解决

    在windows上压缩的文件,是以系统默认编码中文来压缩文件.由于zip文件中没有声明其编码,所以linux上的unzip一般以默认编码解压,中文文件名会出现乱码. 虽然2005年就有人把这报告为bu ...

  5. java 压缩文件

    package folder; import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundExcept ...

  6. 关于TomCat上传文件中文名乱码的问题

    最近在学习TomCat文件上传这一部分,由于文件上传必须要三个条件: 1.表单提交方式必须为Post 2.表单中需要有<input type="file">元素,还需要 ...

  7. 简单测试Demo:如何用Java压缩文件夹和文件

    一.直接贴出测试代码 package com.jason.zip; import java.io.File; import java.io.FileInputStream; import java.i ...

  8. Java 压缩文件夹工具类(包含解压)

    依赖jar <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons ...

  9. 一文教您如何通过 Java 压缩文件,打包一个 tar.gz Filebeat 采集器包

    欢迎关注笔者的公众号: 小哈学Java, 专注于推送 Java 领域优质干货文章!! 个人网站: https://www.exception.site/essay/create-tar-gz-by-j ...

随机推荐

  1. Vue一个案例引发的动态组件与全局事件绑定总结

    最近在自学 Vue 也了解了一些基本用法,也记录了一些笔记有兴趣的朋友可以去查看我的其他文章,技术这东西真的不能光靠看,看是没有的,你必须要动手实践,只有在实战项目中才能发现问题,才能发现我们没有掌握 ...

  2. MySQL 获取格林时间

    SELECT *FROM 表面WHERE DATE_SUB( NOW( ), INTERVAL 3 MINUTE ) <= CONVERT_TZ( 时间字段, @@SESSION.time_zo ...

  3. linux pwd指令的C实现

    linux pwd指令的C实现 pwd指令的功能介绍 linux pwd命令用于显示工作目录 执行pwd命令可立刻得知当前所在工作目录的绝对路径名称. 示例: 查询系统手册 如图所示,getcwd的描 ...

  4. Java连接MQTT服务-ws方式

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  5. Linux Bash shell常用操作快捷键

    转自:https://linuxtoy.org/archives/bash-shortcuts.html 生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率. 编辑命令 ...

  6. cmd 查看域名对应的 IP

    1.cmd nslookup 2.输入 域名,例如:www.baidu.com

  7. Ubuntu 16.04安装、卸载mysql及怎么使用SQL常用操作语句

    以前都是在window上操作,连接数据库,最近转Ubuntu系统,故此,记下安装过程 一,安装mysql,Ctrl+Alt+T打开终端,一步步分别输入命令 //安装mysql服务 sudo apt-g ...

  8. iOS 图表工具charts之CombinedChartView

    关于charts的系列视图介绍传送门: iOS 图表工具charts介绍 iOS 图表工具charts之LineChartView iOS 图表工具charts之BarChartView iOS 图表 ...

  9. Word2007—如何快速取消自动编号

    有时候自动编号很麻烦,有没有好的办法可以快速取消呢. 1.禁止自动编号.在Word为其自动加上编号时,只要按下Ctrl+Z键撤销操作,此时自动编号会消失,而且每次键入数字时,该功能就会被禁止了. 2. ...

  10. Windows客户端 Linux服务器通讯 字符编码问题

    Windows下的字符编码默认是gb2312 在Linux下需要转成utf8 才能正确的看到对应的中文编码 提供转换函数 /*------------------------------------- ...