JAVA SDK 提供的zip壓縮/解壓縮 工具java.util.zip有不吃中文的問題
為此我找個好幾個網站,尋找解決方法
有人提供解法去改java.util.zip的source檔
不過我看最好的方法是import ant的套件
也好不容易找到範例程式
因為我找這個解法找的很累,
一定要分享出來給下次遇到此問題的人~
1.下載ant套件,使用Apache Ant提供的zip工具
http://ant.apache.org/bindownload.cgi
取出ant.jar檔來
2.我寫的 壓縮/解壓縮 程式範例
import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipOutputStream; public class zipUtils { public static void main(String[] a){ File srcFile= new File("C:\\servlet\\"); File targetZip=new File("C:\\123.zip"); File extractDir= new File("C:\\servlet2\\"); try { //壓縮 new zipUtils().makeZip(srcFile, targetZip); //解壓縮 new zipUtils().unzipFile(targetZip, extractDir); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 解壓縮 * @param zipfile zip檔位置 * @param extractDir 解壓縮資料夾 * @return */ public boolean unzipFile(File zipfile, File extractDir){ try { unZip(zipfile, extractDir.getAbsolutePath()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } return true; } /** * 建立資料夾 * @param directory * @param subDirectory */ private void createDirectory(String directory, String subDirectory) { String dir[]; File fl = new File(directory); try { if (subDirectory == "" && fl.exists() != true) fl.mkdir(); else if (subDirectory != "") { dir = subDirectory.replace('\\', '/').split("/"); for (int i = 0; i = 0) { zos.write(buf, 0, len); } //Close the input stream. in.close(); //Close this entry in the Zip stream. zos.closeEntry(); } } }
全站熱搜
留言列表