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套件出現亂碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Java 8引入了Stream API,提供了一種強大且表達力豐富的處理數據集合的方式。然而,使用Stream時,一個常見問題是:如何從forEach操作中中斷或返回? 傳統循環允許提前中斷或返回,但Stream的forEach方法並不直接支持這種方式。本文將解釋原因,並探討在Stream處理系統中實現提前終止的替代方法。 延伸閱讀: Java Stream API改進 理解Stream forEach forEach方法是一個終端操作,它對Stream中的每個元素執行一個操作。它的設計意圖是處

膠囊是一種三維幾何圖形,由一個圓柱體和兩端各一個半球體組成。膠囊的體積可以通過將圓柱體的體積和兩端半球體的體積相加來計算。本教程將討論如何使用不同的方法在Java中計算給定膠囊的體積。 膠囊體積公式 膠囊體積的公式如下: 膠囊體積 = 圓柱體體積 兩個半球體體積 其中, r: 半球體的半徑。 h: 圓柱體的高度(不包括半球體)。 例子 1 輸入 半徑 = 5 單位 高度 = 10 單位 輸出 體積 = 1570.8 立方單位 解釋 使用公式計算體積: 體積 = π × r2 × h (4
