java压缩文件中文名乱码问题
发布时间:2020-12-15 08:00:45 所属栏目: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");
? ? import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; 改为 import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipOutputStream; ? 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,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 – JVM Tomcat Spring MVC应用程序超时等待连接池
- Thread.interrupt()源码跟踪
- 缩放JavaFx:当内容大小超过ScrollPane视口时,会滚动Scroll
- java 时间工具类
- java_day05_类和对象
- java.time:DateTimeParseException for date“20150901023
- 开学第三周暨真随机数生成
- java – Android:简单的GridView,在网格中显示文本
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_6_
- java – 为什么我不能从FileWriter获取FileChannel?