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...