?? zip解壓縮.txt
字號:
這段時間解決解壓縮中文問題,但是對于中文的壓縮文件,總是出錯,查了很多帖子,發現很多人都遇到這種情況,我剛剛解決這個問題,因此提出來,希望能夠對你有所幫助。(多說一句,我看到很多帖子的回答者,并不一定真正的測試過這段代碼,就將別人以前所貼得代碼,一并粘過來,并且還是很高深的那種,殊不知很多提問著照著你貼得代碼就試驗,結果浪費了很多時間,因此希望有些人不要只是為了一些分,就將別人以前回答的帖子粘來粘去),說多了,多多包涵。
用java 自帶的zip類,我沒有實現解壓縮中文問題,不知是否我的方法不對,但是我目前采用了ant.jar,利用這個jar文件,的確可以實現解壓縮中文問題。我將這個jar文件放在了我的機器上,大家可以下載ftp://202.97.215.161
user:zy
pass:1234
先殺毒,我機器好幾天沒殺毒了。
而引用這個jar包解壓縮的源碼如下:
package com.highcom.hcgip.basic.unzip;
/**
* <p>Title: gip3.1 JavaDoc</p>
* <p>Description:利用org.apache.tools.zip解決了解壓zip時中文名稱出錯的情況 </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author zy
* @version 1.0
*/
import java.util.*;
import java.util.zip.*;
import java.io.*;
public class TryUnzip {
public TryUnzip() {
}
/**
*
* 解壓處理
* @param zipFileName 要進行壓縮處理的文件(d:\\aa.zip")
* @param outputDirectory 壓縮處理后的文件路徑(d:\\)
*/
public void unzip(String zipFileName,String outputDirectory) throws Exception{
try {
org.apache.tools.zip.ZipFile zipFile = new org.apache.tools.zip.ZipFile(zipFileName);
java.util.Enumeration e = zipFile.getEntries();
org.apache.tools.zip.ZipEntry zipEntry = null;
while (e.hasMoreElements()){
zipEntry = (org.apache.tools.zip.ZipEntry)e.nextElement();
System.out.println("unziping "+zipEntry.getName());
if (zipEntry.isDirectory()){
String name=zipEntry.getName();
name=name.substring(0,name.length()-1);
System.out.println("輸出路徑:"+outputDirectory+File.separator+name);
File f=new File(outputDirectory+File.separator+name);
f.mkdir();
System.out.println("創建目錄:"+outputDirectory+File.separator+name);
}else{
File f=new File(outputDirectory+File.separator+zipEntry.getName());
f.createNewFile();
InputStream in = zipFile.getInputStream(zipEntry);
FileOutputStream out=new FileOutputStream(f);
//--------解決了圖片失真的情況
int c;
byte[] by=new byte[1024];
while((c=in.read(by)) != -1){
out.write(by,0,c);
}
out.close();
in.close();
}
}
}
catch (Exception ex) {
}
}
public static void main(String[] args){
try{
TryUnzip test = new TryUnzip();
test.unzip("e:\\ok.zip","e:\\");
}catch(Exception e){e.printStackTrace(System.out);}
}
}
說明:1。由于明天休息,所以可能ftp就不開,所以希望下到的人多幫助那些沒下到的人
2。必須為zip壓縮文件,rar不行,并且目前只支持這種壓縮格式
ok.zip
-----測試.txt
-----78.jpg
而這種目前不支持(就是壓縮文件下為一個文件夾,文件夾中包含相應壓縮文件,有時間我在做做)
ok.zip
-----test\測試.txt
-----test\78.jpg
對了,我的環境為
os:2003,jublder8,jrun4.
同時大家也要注意org.apache.tools.zip這個包在有些webserver中就有,所以你要是試驗不成功,找找webserver中是否已經存在org.apache.tools.zip這個包,jrun4就有,害得我又從新寫了一個jar包
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -