Objective C檔案操作初步理解

2021-06-04 20:11:38 字數 3574 閱讀 1888

from: 

nsdata:自定義檔案格式,可以處理各種型別的資料

nsdictionary:鍵-值對,處理plist檔案,xml格式,為了保密,也可以存入經過nsdata處理過的資料

nsdata用法:

1.寫入檔案

//檔案路徑:根目錄

iphonefile資料夾

nsstring

*path = 

@"/iphonefile/datatest.dat";

nsstring

*tempstr = 

@"hello iphone";

intint_test = 

15;float

f_test = 35.0f;

nsmutabledata*writerdata = [[nsmutabledata

alloc

] init];

//字串

[writer 

datausingencoding:

nsutf8stringencoding

]];

//int資料

[writerdata

length:sizeof(int_test)];

//float資料

[writerdata

:&f_test

length

:sizeof

(f_test)];

//寫入檔案

[writerdata 

writetofile:path 

atomically:

yes];

//釋放

writerdata = nil;

[writerdata

release];

2.讀取剛才寫入的檔案

intint_read;

float

f_read;

nsstring

*strread;

nsdata

*readerdata = [nsdata

datawithcontentsoffile:path];

//讀取字串

strread

= [[

nsstring

alloc] 

initwithdata:[reader 

subdatawithrange:nsmakerange(

0, [tempstr 

length])] 

encoding:

nsutf8stringencoding];

//讀取int

[reader 

getbytes:&int_read 

range:nsmakerange([tempstr

length], 

sizeof(int_read))];

//讀取float

[reader 

getbytes:&f_read 

range:nsmakerange([tempstr

length] + 

sizeof(int_read), 

sizeof(f_read))];

nslog

(@"string=:%@  int_read=:%i f_read=:%f", 

strread

, int_read, f_read);

//釋放

readerdata = nil;

[readerdata release];

nsdictionary用法:

1.寫入資料到plist檔案

nsarray

*paths = 

nssearchpathfordirectoriesindomains(

nsdocumentdirectory

, nsuserdomainmask

, yes);

nsstring

*documentsdirectory = [paths 

objectatindex:0];

//檔案路徑或者直接用~表示當前應用的目錄

nsstring *filepath

= [documentsdirectory 

nsmutabledictionary* dict_rank = 

nil;

nsfilemanager*filemanager = [nsfilemanager

defaultmanager];

//檔案不存在則建立檔案

if(![filemanager 

fileexistsatpath:filepath])

//key-value  (temp-abcdef)

[dict_rank 

setobject:[

@"abcdef"

datausingencoding:

nsutf8stringencoding

] forkey:

@"temp"];

[dcit_rank setobject:@"valu" forkey:@"key"];

//寫入經過nsdata處理的資料

nsmutabledata* write = [[nsmutabledata

alloc

] init];

int key_num = 16;

[write 

length:sizeof(key_num)];

[dict_rank 

setobject:write 

forkey:@"knum"];

[dict_rank 

setobject:@"me" 

forkey:@"who"]

[dict_rank 

writetofile:

filepath

atomically:

yes];

2.讀取plist檔案

dict_rank = [[

nsmutabledictionary

alloc] 

initwithcontentsoffile:

filepath];

nsdata* tt = [dict_rank 

valueforkey:@"temp"];

//[tt subdatawithrange:nsmakerange(0, 4)]

nsstring* ttemp22 = [[nsstring

alloc] 

initwithdata:tt

encoding

:nsutf8stringencoding];

nslog(@"ttemp22=%s  

",[ttemp22 

utf8string]);

nsdata

* ia = [dict_rank 

valueforkey:@"knum"

] ;

inttte***3 ;

[ia 

getbytes:&tte***3];

nsstring* strwho = [dict_rank valueforkey:@"who"];

Objective C檔案流操作

一 nsfilehandle1.它能夠以流的方式訪問基於檔案 網路 管道 裝置的資料,可以設定寫入的位置指標。2.nsdata nsstring寫入檔案的方法是直接覆蓋寫入,全部讀出,當處理大資料的檔案時,對記憶體會造成壓力。而nsfilehandle能夠以流的方式處理檔案,而不用把整個檔案的資料全...

Objective C 目錄與檔案操作

nsfilemanager 用於檔案操作的方法 方法說明 bool createfileatpath nsstring path content nsdata contents attributes nsdictionary attributes 建立具有 contents 的內容,以及 attri...

objective c 使用檔案 二

使用路徑 nspathutilities.h nspathutilities.h包含了nsstring的函式和分類擴充套件,它允許你操作路徑名。下面是乙個例子 view plain import import import import import intmain intargc,const ch...