在Android平臺中如何實現Zip文件的解壓縮功能呢? 由於Android內部已經集成了zlib庫,對於英文和非密碼的Zip文件解壓縮仍是比較簡單的,下面給你們一個解壓縮zip的 java代碼,能夠在Android上任何版本中使用,Unzip這個靜態方法比較簡單,參數一爲源zip文件的完整路徑,參數二爲解壓縮後存放的文件夾。
java
01 |
private static void Unzip(String zipFile, String targetDir) { |
02 |
int BUFFER = 4096 ; //這裏緩衝區咱們使用4KB, |
03 |
String strEntry; //保存每一個zip的條目名稱 |
05 |
BufferedOutputStream dest = null ; //緩衝輸出流 |
06 |
FileInputStream fis = new FileInputStream(zipFile); |
07 |
ZipInputStream zis = new ZipInputStream( new BufferedInputStream(fis)); |
08 |
ZipEntry entry; //每一個zip條目的實例 |
09 |
while ((entry = zis.getNextEntry()) != null ) { |
11 |
Log.i( "Unzip: " , "=" + entry); |
13 |
byte data[] = new byte [BUFFER]; |
14 |
strEntry = entry.getName(); |
15 |
File entryFile = new File(targetDir + strEntry); |
16 |
File entryDir = new File(entryFile.getParent()); |
17 |
if (!entryDir.exists()) { |
20 |
FileOutputStream fos = new FileOutputStream(entryFile); |
21 |
dest = new BufferedOutputStream(fos, BUFFER); |
22 |
while ((count = zis.read(data, 0 , BUFFER)) != - 1 ) { |
23 |
dest.write(data, 0 , count); |
27 |
} catch (Exception ex) { |
32 |
} catch (Exception cwj) { |
33 |
cwj.printStackTrace(); |
上面是總結的zip文件解壓縮代碼,但願你你們有用,須要注意的是參數均填寫完整的路徑,好比/mnt/sdcard/xxx.zip這樣的類型。