解决思路:

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

免费在线教学视频分享:java教学视频

示例代码: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相关文章教程:java开发入门

java判断zip包的编码格式_java解压zip包出现乱码相关推荐

  1. java解压zip代码_Java解压zip文件(文本)压缩包

    说明:由于我们的日志收集到指定服务器上,会按天压缩成一个zip格式的压缩包,但是有时候需要对这些日志进行处理,人工解压在处理,显示对于大量的日志处理是不行的(效率太低),所以还是要采用程序自动解压效率 ...

  2. java zip解压 中文_java解压ZIP 解决中文乱码 (GBK和UTF-8)

    java解压ZIP 解决中文乱码 (GBK和UTF-8) 工具使用 : zip4j GitHub : zip4j 版本 : 2.2.8 Maven : net.lingala.zip4j zip4j ...

  3. Android Studio生成aar包的方法以及解压aar包的方法

    aar包在哪里看呢?请在你库里面的   库名称\moudleBill\build\outputs\aar这个目录,如果看不懂,直接上图看下图:(请双击放大看效果会更好) 方法一:如下图(请双击放大看效 ...

  4. android zip格式应用,Android 压缩解压zip文件

    Android 压缩解压zip文件 上次写了个解压缩功能,但有局限性,比如压缩文件xx.zip 里包括子目录的情况下,执行上次解压缩的功能就不能实现我们想要的效果,于是在网上参考了一下java的解压缩 ...

  5. php 解压zip到目录下,php 解压zip压缩包内容到指定目录的实例

    目录结构: test test/index.php test/test_zip.zip test/test_zip <?php header('Content-type:text/html;ch ...

  6. 服务器如何解压zip文件,ECS Linux 服务器解压zip格式文件操作方法

    Linux 系统服务器用unzip命令解压操作,方法如下所示: 如压缩文件是test.zip,而压缩包中的文件是testzip.png [root@machine 0318test]# ll drwx ...

  7. java model 中文乱码_Java解压zip 解决编码和中文乱码问题

    项目由GBK转成UTF-8 遇到原有解析zip发现中文文件名称乱码问题 net.lingala.zip4j zip4j 1.3.2 package com.multek.ebuy.utils; imp ...

  8. java解压zip异常_java解压zip文件示例

    若是使用Java自带的压缩工具包来实现解压缩文件到指定文件夹的功能,因为jdk提供的zip只能按UTF-8格式处理,而Windows系统中文件名是以GBK方式编码的,所以如果是解压一个包含中文文件名的 ...

  9. php 解压zip到目录下,PHP解压ZIP压缩包到指定目录 | kTWO-个人博客

    /* * 解压文件 * 需开启配置 php_zip.dll * filename 要解压的文件全路径 * path 解压文件后保存路径 * 返回值 trur或者false * 作者:kTWO * 时间 ...

最新文章

  1. activity的四种加载模式
  2. SAP PM入门系列29 - IW65 Display Activities
  3. Spring Security入门(三):密码加密
  4. Codeforces 989C (构造)
  5. 在Linux下如何安装QQ?
  6. 计算机考研:河南有哪些性价比高的学校?
  7. 随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(3)--(P3P的迭代解)
  8. 2006年~2011年记事简要
  9. 2020年欧空局10m土地覆盖数据数据分享
  10. 新面貌,新征程—读《新程序员》有感
  11. 关于“档案大数据”的非主流看法
  12. 找字符串中最长单词C语言,C语言 在已知字符串中找最长单词
  13. 第2章:Android的编译环境--build系统
  14. urllib和urllib2的区别和使用
  15. sketch html尺寸,为何sketch预置画布尺寸比真实分辨率小?
  16. 5G 频段 频率与Band对应表
  17. ArcGIS加载天地图底图
  18. UNIAPP中腾讯地图选点组件和wx.getLocation配合使用,实现定位当前位置,并获取当前位置信息。
  19. 四个免费,无法律风险的高质量国外图片网站推荐
  20. JS字符串数据类型转化和分割的方法

热门文章

  1. Java实现简单的计算器
  2. vivado2018.3和modelsim10.6d进行联合仿真
  3. matlab创建一个简易的MP3播放器GUI程序
  4. 贺利坚老师汇编课程48笔记:转移指令如jcxz
  5. Core官方DI解析(3)-ServiceCallSite.md
  6. RedisUtil工具类
  7. [置顶] Android之Handler用法总结
  8. Guacamole-HTML5无客户端远程桌面
  9. 语音信号处理基础(五)——语音分帧与加窗
  10. [转载] Python List index()方法