美文网首页
java解压zip包出现乱码

java解压zip包出现乱码

作者: 小人物不说大话 | 来源:发表于2020-02-21 18:22 被阅读0次

    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;

    publicclassZipUtil {

        /**

         * todo  zip解压缩

         * @param source 压缩文件全路径

         * @param target 要解压路径

         * @param targetName 解压文件夹名称

         */

        publicstaticvoid unzip (String source,String target,String targetName) throws Exception{

            try{

                File file = newFile(source);

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

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

                }

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

                if(!file.exists()){

                    file.mkdirs();

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

                }

                ZipFile zipfile = newZipFile(source);

                if(!zipfile.isValidZipFile()) { 

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

                }

                zipfile.setFileNameCharset("GBK");

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

            } catch(Exception e) {

                e.printStackTrace();

                throwe;

            }

        }

        /**

         * todo  生成zip压缩

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

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

         * @param targetName 解压文件名称

         */

        publicstaticvoid zip (String source,String target,String targetName) throws Exception{

            try{          

                File file = newFile(target);

                if(!file.exists()){

                    file.mkdirs();

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

                }

                file = newFile(source);

                if(!file.exists()){

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

                }

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

                zipfile.setFileNameCharset("GBK");

                ZipParameters params = newZipParameters();

                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();

                throwe;

            }

        }

        publicstaticvoid 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包出现乱码

          本文链接:https://www.haomeiwen.com/subject/qdhhqhtx.html