iOS 大檔案處理,檔案的壓縮和解壓縮

2021-07-24 16:19:38 字數 2404 閱讀 5614

(1)實現思路

邊接收資料邊寫檔案以解決記憶體越來越大的問題
(2)核心**

//當接收到伺服器響應的時候呼叫,該方法只會呼叫一次

-(void)connection:(nsurlconnection *)connection didreceiveresponse:(nsurlresponse *)response

//當接收到伺服器返回的資料時會呼叫

//該方法可能會被呼叫多次

-(void)connection:(nsurlconnection *)connection didreceivedata:(nsdata *)data

(1)實現思路

(2)解決方案(設定請求頭)

//2.建立請求物件

nsmutableurlrequest *request = [nsmutableurlrequest requestwithurl:url];

/* 表示頭500個位元組:range: bytes=0-499

表示第二個500位元組:range: bytes=500-999

表示最後500個位元組:range: bytes=-500

表示500位元組以後的範圍:range: bytes=500-

7.0 輸出流

(1)使用輸出流也可以實現和nsfilehandle相同的功能

(2)如何使用

//1.建立乙個資料輸出流

/* 第乙個引數:二進位制的流資料要寫入到**

第二個引數:採用什麼樣的方式寫入流資料,如果yes則表示追加,如果是no則表示覆蓋

*///只要呼叫了該方法就會往檔案中寫資料

//如果檔案不存在,那麼會自動的建立乙個

[stream open];

self

.stream = stream;

//2.當接收到資料的時候寫資料

//使用輸出流寫資料

/* 第乙個引數:要寫入的二進位制資料

第二個引數:要寫入的資料的大小

*/[self

.stream write:data.bytes maxlength:data.length];

//關閉輸出流

[self

.stream close];

self

.stream = nil;

03 **相關:使用nsfilehandle這個類的seektofileofset方法,來向檔案中特定的位置寫入資料。

04 技術相關

b.通過nsfilehandle向檔案中的指定位置寫資料

9.0 檔案的壓縮和解壓縮

(1)說明

使用ziparchive來壓縮和解壓縮檔案需要新增依賴庫(libz),使用需要包含ssziparchive檔案,如果使用cocoapoads來安裝框架,那麼會自動的配置框架的使用環境
(2)相關**

//壓縮檔案的第一種方式

/* 第乙個引數:壓縮檔案要儲存的位置

第二個引數:要壓縮哪幾個檔案

*/[ssziparchive createzipfileatpath:fullpath withfilesatpaths:arraym];

//壓縮檔案的第二種方式

/* 第乙個引數:檔案壓縮到哪個地方

第二個引數:要壓縮檔案的全路徑

*/[ssziparchive createzipfileatpath:fullpath withcontentsofdirectory:zipfile];

//如何對壓縮檔案進行解壓

/* 第乙個引數:要解壓的檔案

第二個引數:要解壓到什麼地方

*/[ssziparchive unzipfileatpath:unzipfile todestination:fullpath];

檔案壓縮和解壓

1.zip命令 zip r a.zip a 將a資料夾壓縮成a.zip zip r abcdef.zip abc def.txt 這句命令的意思是將資料夾abc和檔案def.txt壓縮成乙個壓縮包abcdef.zip 2.unzip命令 unzip mysql.zip 在當前目錄下直接解壓mysql...

檔案的壓縮和解壓縮

ios中對檔案的解壓縮處理通常都是利用第三方框架,實現解壓縮,接下來就來看看吧。使用步驟 解壓檔案 nsstring zippath path to your zip file nsstring destinationpath path to the folder where you want it...

檔案的壓縮和解壓縮

import ssziparchive.h 方法一 第乙個引數 壓縮檔案的存放位置 第二個引數 要壓縮那些檔案 路徑 這裡面是乙個陣列,陣列當中都是我們需要壓縮檔案路徑 建立陣列nsarray arraym ssziparchive createzipfileatpath test.zip with...