溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么解決java解壓zip包出現亂碼

發布時間:2020-06-23 09:02:42 來源:億速云 閱讀:417 作者: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包出現亂碼的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女