怎么解决java解压zip包出现乱码

发布时间:2020-06-23 09:02:42

来源:亿速云

阅读:107

作者:Leah

怎么解决java解压zip包出现乱码?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

解决思路:

首先判断需要解压的文件是否存在或路径是否正确,接着判断路径是否存在,若不存在则创建路径,然后判断压缩文件是否合法,最后设置文件名称编码为“GBK”即可。

示例代码:package com.yunfei.fts;

import java.io.File;

import net.lingala.zip4j.core.ZipFile;

import net.lingala.zip4j.model.ZipParameters;

import net.lingala.zip4j.util.Zip4jConstants;

public class ZipUtil {

/**

* todo zip解压缩

* @param source 压缩文件全路径

* @param target 要解压路径

* @param targetName 解压文件夹名称

*/

public static void unzip (String source,String target,String targetName) throws Exception{

try {

File file = new File(source);

if(!file.exists() || file.isDirectory()){

throw new Exception("将要解压文件不存在或路径填写不正确!");

}

file = new File(target+File.separator+targetName);

if(!file.exists()){

file.mkdirs();

System.out.println("路劲不存在,创建路径");

}

ZipFile zipfile = new ZipFile(source);

if (!zipfile.isValidZipFile()) {

throw new Exception("压缩文件不合法,可能被损坏.");

}

zipfile.setFileNameCharset("GBK");

zipfile.extractAll(target+File.separator+targetName);

} catch (Exception e) {

e.printStackTrace();

throw e;

}

}

/**

* todo 生成zip压缩

* @param source 要压缩文件全路径

* @param target 压缩文件存放路径

* @param targetName 解压文件名称

*/

public static void zip (String source,String target,String targetName) throws Exception{

try {

File file = new File(target);

if(!file.exists()){

file.mkdirs();

System.out.println("解压存储路劲不存在,创建路径");

}

file = new File(source);

if(!file.exists()){

throw new Exception("将要解压文件不存在或路径填写不正确!");

}

ZipFile zipfile = new ZipFile(target+File.separator+targetName);

zipfile.setFileNameCharset("GBK");

ZipParameters params = new ZipParameters();

params.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); // 压缩方式

params.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); // 压缩级别

//zipfile.cr

if(file.isFile()){

zipfile.addFile(file, params);

}else{

zipfile.addFolder(source, params);

}

} catch (Exception e) {

e.printStackTrace();

throw e;

}

}

public static void main(String[] args) {

try {

unzip("d:\\home.zip","e:\\","test");

zip("D:\\home","e:\\","test.zip");

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

看完上述内容,你们掌握解决java解压zip包出现乱码的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

解压后java文字乱码_怎么解决java解压zip包出现乱码相关推荐

  1. java http请求 乱码_怎么解决java中的http请求乱码

    怎么解决java中的http请求乱码 发布时间:2020-06-23 20:00:11 来源:亿速云 阅读:90 作者:元一 怎么解决java中的http请求乱码?针对这个问题,今天小编总结了这篇文章 ...

  2. maple 2018 窗口关闭提示乱码_如果解决SOLIDWORKS工程图转CAD字体出现乱码的问题_SolidWorks生信科技...

    操作SOLIDWORKS工程图转CAD时,由于SOLIDWORKS使用的是Windows字体,而CAD使用的是线性字体,字体就容易出现乱码的苦恼.一般出现乱码是因为字体映射里面没有中文,所以会导致乱码 ...

  3. java 压缩 乱码_如何解决java压缩文件乱码问题

    用java来打包文件生成压缩文件,有两个地方会出现乱码: 内容的中文乱码问题:修改sun的源码.使用开源的类库org.apache.tools.zip.ZipOutputStream和org.apac ...

  4. python打包出现乱码_python解压zip包中文乱码解决方法

    乱码得原因: 由于ZipFile模块导出遇到中文解码不对,windows上会出现,linux是否会出现不知道没测试过. 解决方式: 1. 搞个文件名引射表(不太方便,少量文件夹套用时候还可以) 2. ...

  5. java如何解压rar文件怎么打开_如何在java中实现对zip和rar文件的解压

    如何在java中实现对zip和rar文件的解压 关注:101  答案:1  mip版 解决时间 2021-01-26 10:50 提问者芣①樣哋羙莮 2021-01-25 22:44 如何在java中 ...

  6. java 字符串乱码_这份Java面试题含答案解析竟然真的让你不用在面试上“如履薄冰”...

    面试题集共分为以下十部分: 一.Core Java: 1 - 95 题1 - 24 页 基础及语法: 1 - 61 题1 - 13 页 异常: 62 - 69 题13 - 15 页 集合: 70 - ...

  7. java乱码怎么解决_如何解决java乱码

    如何解决java乱码 同样的java文件,如果使用不用的工具.编译有可能出现乱码,这是为什么呢?以下是小编为大家搜索整理的如何解决java乱码,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业 ...

  8. java 字符串文字筛选_拜托,Java。 最终是否支持多行字符串文字

    java 字符串文字筛选 我了解Java语言的思想很难以向后兼容的方式进行维护. 我知道JDK API(例如集合)的想法很难打破. 是. 我不明白为什么Java 仍然没有多行字符串文字. 您多久编写一 ...

  9. java导出excel文件名_怎么解决java导出excel时文件名乱码

    怎么解决java导出excel时文件名乱码 发布时间:2020-06-19 16:59:00 来源:亿速云 阅读:137 作者:元一 java解决导出Excel时文件名乱码的方法示例:String a ...

最新文章

  1. 漫画 | 如何用 Kubernetes 实现 CI/CD 发布流程?
  2. 苹果外包爆料:你手机里的Siri,听到了嘿嘿嘿的声音
  3. python最新版本-官方宣布不再维护Python2,并每年发布一个新版本
  4. android -------- NDK 入门指南
  5. 企业级nginx服务优化(一)
  6. java map是大括号_Java8如何基于flatMap处理异常函数
  7. php安装zendDebug
  8. 概率论简明教程_Chapter-02_最大似然估计
  9. MongoDB for MAC 下载及安装
  10. DVD光驱注册表修复
  11. 00003__爬拉勾网
  12. 《高绩效成果教练》课程笔记及思考
  13. oracle 分组first,Oracle分析函数:First_Value
  14. linux系统下操作nandflash指令,Linux驱动之Nand Flash原理及硬件操作
  15. 89元尝鲜智能家居 天猫精灵方糖智联3件套简评
  16. IDEA牛逼!900行又臭又长的类重构,几分钟搞定
  17. python爬iptv直播源脚本_GitHub - Good0007/iptv-m3u-maker: IPTV 国内+国外 电视台直播源m3u文件, 收集汇总本地源脚本...
  18. java所定义的版本中不包括_java试题模拟出题
  19. On the Grasshopper and the Cricket --John Keats 蝈蝈与蟋蟀 济慈
  20. 机械革命 Code Go 评测

热门文章

  1. C - N^3问题 SDUT
  2. More Effective C++之 Item M17:考虑使用lazy evaluation(懒惰计算法)
  3. oracle 自学笔记
  4. socket多客户端连接服务器
  5. 通用游戏地图解决方案设计解析
  6. python反弹shell_反弹Shell小结
  7. 9.3 挂钩API技术(HOOK API)
  8. 【DB宝4】只需2步即可拥有Oracle19c的ASM+DB环境
  9. Win10 Windows Hello 指纹识别找不到支持设备解决方案
  10. C语言编程>第二十五周 ③ 下列给定程序中,函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形;构成的是等边三角形,还是等腰三角形。若能构成等边三角形函数返回3,若能构成……