java判断zip包的编码格式_java解压zip包出现乱码
解决思路:
首先判断需要解压的文件是否存在或路径是否正确,接着判断路径是否存在,若不存在则创建路径,然后判断压缩文件是否合法,最后设置文件名称编码为“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包出现乱码相关推荐
- java解压zip代码_Java解压zip文件(文本)压缩包
说明:由于我们的日志收集到指定服务器上,会按天压缩成一个zip格式的压缩包,但是有时候需要对这些日志进行处理,人工解压在处理,显示对于大量的日志处理是不行的(效率太低),所以还是要采用程序自动解压效率 ...
- java zip解压 中文_java解压ZIP 解决中文乱码 (GBK和UTF-8)
java解压ZIP 解决中文乱码 (GBK和UTF-8) 工具使用 : zip4j GitHub : zip4j 版本 : 2.2.8 Maven : net.lingala.zip4j zip4j ...
- Android Studio生成aar包的方法以及解压aar包的方法
aar包在哪里看呢?请在你库里面的 库名称\moudleBill\build\outputs\aar这个目录,如果看不懂,直接上图看下图:(请双击放大看效果会更好) 方法一:如下图(请双击放大看效 ...
- android zip格式应用,Android 压缩解压zip文件
Android 压缩解压zip文件 上次写了个解压缩功能,但有局限性,比如压缩文件xx.zip 里包括子目录的情况下,执行上次解压缩的功能就不能实现我们想要的效果,于是在网上参考了一下java的解压缩 ...
- php 解压zip到目录下,php 解压zip压缩包内容到指定目录的实例
目录结构: test test/index.php test/test_zip.zip test/test_zip <?php header('Content-type:text/html;ch ...
- 服务器如何解压zip文件,ECS Linux 服务器解压zip格式文件操作方法
Linux 系统服务器用unzip命令解压操作,方法如下所示: 如压缩文件是test.zip,而压缩包中的文件是testzip.png [root@machine 0318test]# ll drwx ...
- java model 中文乱码_Java解压zip 解决编码和中文乱码问题
项目由GBK转成UTF-8 遇到原有解析zip发现中文文件名称乱码问题 net.lingala.zip4j zip4j 1.3.2 package com.multek.ebuy.utils; imp ...
- java解压zip异常_java解压zip文件示例
若是使用Java自带的压缩工具包来实现解压缩文件到指定文件夹的功能,因为jdk提供的zip只能按UTF-8格式处理,而Windows系统中文件名是以GBK方式编码的,所以如果是解压一个包含中文文件名的 ...
- php 解压zip到目录下,PHP解压ZIP压缩包到指定目录 | kTWO-个人博客
/* * 解压文件 * 需开启配置 php_zip.dll * filename 要解压的文件全路径 * path 解压文件后保存路径 * 返回值 trur或者false * 作者:kTWO * 时间 ...
最新文章
- activity的四种加载模式
- SAP PM入门系列29 - IW65 Display Activities
- Spring Security入门(三):密码加密
- Codeforces 989C (构造)
- 在Linux下如何安装QQ?
- 计算机考研:河南有哪些性价比高的学校?
- 随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(3)--(P3P的迭代解)
- 2006年~2011年记事简要
- 2020年欧空局10m土地覆盖数据数据分享
- 新面貌,新征程—读《新程序员》有感
- 关于“档案大数据”的非主流看法
- 找字符串中最长单词C语言,C语言 在已知字符串中找最长单词
- 第2章:Android的编译环境--build系统
- urllib和urllib2的区别和使用
- sketch html尺寸,为何sketch预置画布尺寸比真实分辨率小?
- 5G 频段 频率与Band对应表
- ArcGIS加载天地图底图
- UNIAPP中腾讯地图选点组件和wx.getLocation配合使用,实现定位当前位置,并获取当前位置信息。
- 四个免费,无法律风险的高质量国外图片网站推荐
- JS字符串数据类型转化和分割的方法
热门文章
- Java实现简单的计算器
- vivado2018.3和modelsim10.6d进行联合仿真
- matlab创建一个简易的MP3播放器GUI程序
- 贺利坚老师汇编课程48笔记:转移指令如jcxz
- Core官方DI解析(3)-ServiceCallSite.md
- RedisUtil工具类
- [置顶] Android之Handler用法总结
- Guacamole-HTML5无客户端远程桌面
- 语音信号处理基础(五)——语音分帧与加窗
- [转载] Python List index()方法