Android Zip 解壓 與 進度 實現

2021-09-23 18:21:29 字數 714 閱讀 5623

首先我們明確一下需求:

/sdcard/hello.zip 中 有乙個 hello.txt 文字中有一句話,讀取出來顯示

這裡我先實現一下讀取乙個zip的大小,這裡使用的是zipfile這個類,我們可以進行遍歷計算總大小,如下**:

這個**比較好理解,轉換成zipfile之後進行while讀取計算大小總和,當然,我們現在就開始實現解壓這個操作了,至於計算總大小和,實際上是為了鋪墊大家對zip的一些印象,我們看如下**:

在這個**中我們可以看到傳入了兩個引數,乙個是檔案的原始路徑,乙個是解壓路徑,接著,我將原始路徑轉為zipinputstream後進行while迴圈,如果是資料夾則建立資料夾路徑,不是資料夾則直接建立檔案,此時如果執行的話,將會有解壓功能,但是內容卻是空的,因為我們的資料流還沒有寫入,同時我們也可以在寫入的時候計算解壓進度使用百分比顯示,所以這裡我們可以寫乙個介面或者其他呈現的方式,因為解壓是耗時操作,我這裡畢竟是demo就簡單點寫了:

仔細看我增加的部分,我通過fileoutputstream來寫入資料,並且對進度進行了計算,當拷貝完成後我通過readfilecontent函式將裡面的內容讀取出來,我們來看下readfilecontent的**:

這裡因為裡面的內容是中文,所以我的編碼為gbk,其他的沒什麼,直接讀取後顯示出來,最終的結果:

嗯,沒錯,我的文字中就一行文字,好了,到此,解壓的步驟算是完成。

進入星球你可以做什麼?

Android Zip 解壓與進度 實現

1.inpath 與 outpath private string inpath storage emulated 0 hello.zip 壓縮包路徑 private string outpath storage emulated 0 解壓路徑 sdcard hello.zip 中 有乙個 hell...

Android Zip解壓相關

ps 最近一有空就抽時間撈以前一些用過的但是沒記錄的小技能。獲取zipfile大小 param path return public static long getzipfilesize file path catch ioexception e return size 解壓 param input...

c 解壓zip 進度 C 壓縮解壓zip 檔案

1 2 zip 壓縮檔案3 4 public classzip5 10 region 加壓方法 11 14 被壓縮的資料夾夾路徑 15 生成壓縮檔案的路徑,為空則預設與被壓縮資料夾同一級目錄,名稱為 資料夾名 zip 16 出錯資訊 17 是否壓縮成功 18 public static bool z...