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


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 45 的頭像
    45

    FIVE

    45 發表在 痞客邦 留言(7) 人氣()