java解压zip包出现乱码

互联网 19-11-29

解决思路:

首先判断需要解压的文件是否存在或路径是否正确,接着判断路径是否存在,若不存在则创建路径,然后判断压缩文件是否合法,最后设置文件名称编码为“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包出现乱码的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 乱码
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:java错误找不到符号解决方法(引用自定义类)

相关资讯