//
讀取檔案
//以唯讀的方式開啟乙個檔案,生成檔案控制代碼,目的是讀取檔案的內容
//檔案控制代碼就是檔案在記憶體中的**人
//從檔案控制代碼裡讀,就是從檔案裡讀
//同乙個nsfilehandle物件,第一次讀取之後,第二次讀取會接著第一讀取結束的節點開始讀取
nsfilehandle * filehandle=[nsfilehandle
filehandleforreadingatpath:path];
#pragma mark - 讀取檔案 //
讀取到檔案尾
nsdata * data =[filehandle readdatatoendoffile];
//data轉字串,前提是你確定資料真的是字串
nsstring
* str = [[
nsstring
alloc] initwithdata:data encoding:nsutf8stringencoding];
nslog(@"%@",str);
#pragma mark 補充方法
//字串轉data
nsdata
*data2=[str datausingencoding:nsutf8stringencoding];
nsdata * data3 = [[nsdata
alloc] initwithcontentsoffile:path];
//nsdata只能一口氣把檔案中的內容讀出來,占用記憶體高
#pragma mark - 選擇讀取檔案的大小 //
讀取80位元組
nsdata * data5 =[filehandle readdataoflength:80];
nsstring
*str5=[[
nsstring
alloc] initwithdata:data5 encoding:nsutf8stringencoding];
//這個init方法沒有對應的stringwith方法
nslog(@"%@",str5);
#pragma mark 再選擇120位元組,會接著第一次的進度,繼續讀
nsdata * data6 = [filehandle readdataoflength:120];
//第二次讀取,會接著第一次的進度,繼續讀
nsstring
* str6 = [[
nsstring
alloc] initwithdata:data6 encoding:nsutf8stringencoding];
nslog(@"%@",str6);
#pragma mark - 定為到那開始讀
//定位讀/寫進度到檔案的某個位元組
[filehandle seektofileoffset:80];
//offet 表示偏移量 80表示讀取進度為開始到80位元組的節點
nsdata * data7 = [filehandle readdataoflength:120];
nsstring
*str7=[[
nsstring
alloc] initwithdata:data7 encoding:nsutf8stringencoding];
nslog(@"%@",str7);
#pragma mark - 寫入檔案
nsfilehandle * filehandlew = [nsfilehandle
filehandleforwritingatpath:path];
//將字串轉化為二進位制資料報nsdata
nsdata * data = [@"
帶我飛~" datausingencoding:nsutf8stringencoding];
#pragma mark 定位檔案尾
//[filehandlew seektoendoffile];
#pragma mark 定位到某一位元組,該位元組數可以大於當前檔案大小
[filehandlew seektofileoffset:120];
#pragma mark 清空原始檔資料
[filehandlew truncatefileatoffset:0];
#pragma mark 將資料寫入檔案
[filehandlew writedata:data];
#pragma mark 多次寫入。每次寫入會繼續上次的進度,但是每次開啟檔案控制代碼,就會從頭寫入
[filehandlew writedata:data];
OC學習之道 關於OC的屬性的介紹
本人最糾結的就是屬性的一些細節,看注釋 main.m import import student.h int main int argc,const char argv nsstring name 在這裡簡單說一下 object和object的區別。object是myclass類的成員變數,obje...
關於OC記憶體管理 03
1.對於上篇文章,物件的例項變數 oc物件型別 的setter方法,只是執行一次retain操作,則這個程式是有缺陷的。可以想到的是,如果我們不小心在main.m裡多執行了一次 p.book b,則我們又執行了一次retain操作,此時計數器又加上了1,不符合記憶體管理原則。但是如何修改呢。我們可以...
關於swift和OC混編
啦啦 最近沒啥事情做就開始幹swift了,然後就 混編的各種問題接肘而來,1.如何在swift中使用oc 但是如果手抖點錯的話,那麼就只能自己手動建立了,1.1 建立乙個.h檔案 名字隨便取 1.2 然後在project build setting 搜尋bridge 1.3 將建立的.h路勁填充進去...