1.數(shù)據(jù)持久化:把數(shù)據(jù)由內(nèi)存寫(xiě)到本地(硬盤(pán)中)弧呐,在iOS中是指把數(shù)據(jù)寫(xiě)到沙盒文件中。
2.沙盒機(jī)制:采用沙盒文件夾的形式管理應(yīng)用程序的本地文件抒线,但是沙盒文件夾的名字是隨機(jī)分配的,并且是采用十六進(jìn)制方法命名的。
3.沙盒內(nèi)部構(gòu)造(App Sandbox):MyApp.app,Documents,Library,tmp.
4.獲取沙盒文件夾的路徑
NSHomeDirectory() 沙盒文件的主目錄警儒,在這個(gè)文件夾下放著三個(gè)文件Document,Libralay眶根,Tmp蜀铲,其中Library 中還有兩個(gè)文件Caches,Perference属百,系統(tǒng)幫我們創(chuàng)建五個(gè)文件存放在沙盒文件下记劝,這五個(gè)是不能刪除的
NSLog(@"%@",NSHomeDirectory());
5.Documents: 存放一些比較重要的文件,文件大小比較小族扰,這些都是可以有副本,此文件夾中不能有太多東西,否則在上傳AppStore中會(huì)直接被拒,比如: 數(shù)據(jù)庫(kù)
獲取Documents 文件夾的路徑
第一個(gè)參數(shù):文件夾的名字 64行
第二個(gè)參數(shù):搜索域,有優(yōu)先級(jí):users -->local -->network -->system
第三個(gè)參數(shù):相對(duì)路徑或者是絕對(duì)路徑 YES絕對(duì)路徑厌丑,NO代表相對(duì)路徑
此方法最早是應(yīng)用在MAC端開(kāi)發(fā)的钳恕,對(duì)于PC 端可以有很多的用戶,所以該方法的返回值是一個(gè)數(shù)組蹄衷,但是現(xiàn)在這個(gè)方法應(yīng)用在移動(dòng)端(iOS端),而移動(dòng)端用戶只有一個(gè)忧额,所以獲取的路徑也只有一個(gè)
NSString *documentsPath =? [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];
NSLog(@"%@",documentsPath);
6.Library 資源庫(kù),存放的一些不太重要的文件,相對(duì)比較大愧口,且其中有兩個(gè)子文件
NSString *libraryPath =? [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)lastObject];
NSLog(@"%@",libraryPath);
6.1:Caches 存放一些緩存的文件睦番,如網(wǎng)頁(yè)緩存,圖片緩存,視頻緩存,視頻緩存,應(yīng)用中"清除緩存"功能,清理的就是這個(gè)文件夾里面的內(nèi)容
NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];
NSLog(@"%@",cachesPath);路徑
6.2Perferences 偏好設(shè)置,存放一些用戶的信息,但是路徑是找不到的耍属,只能通過(guò)NSUserDefaults 訪問(wèn)
NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
//perferences 中存放的都是plist 文件托嚣,在第一次設(shè)置鍵值對(duì)的時(shí)候,會(huì)幫你創(chuàng)建plist文件厚骗,如果直接取值的時(shí)候示启,plist 文件是沒(méi)有的
//NSUserDefaults? 支持的數(shù)據(jù)類型:array,dictionary,string,data,number,bool,integer等
//NSUserDefaults? 中一般存儲(chǔ)數(shù)值類型的數(shù)據(jù),不存放大型的數(shù)據(jù)
7.//Tem 存放臨時(shí)文件? 比如:壓縮包 zip 领舰,解壓后就刪除處理了
NSTemporaryDirectory();
NSLog(@"%@",NSTemporaryDirectory()
8.NSFileManager 文件管理類,是一個(gè)文件管理工具夫嗓,主要用于文件的的添加、刪除冲秽、拷貝舍咖,繼承自 NSObject
NSFileManager 也是一個(gè)單例類
NSFileManager *fileManger = [NSFileManager defaultManager];
9.簡(jiǎn)單對(duì)象的寫(xiě)入和讀取
//簡(jiǎn)單對(duì)象指的是:NSString ,NSDictionary,NSData以及他們的子類
//注意:集合(NSArray,NSDictionary)的元素锉桑,必須是上面的四種基本數(shù)據(jù)類型排霉,不能放復(fù)雜對(duì)象,才能直接進(jìn)行文件的寫(xiě)入和讀让裰帷攻柠;
10.復(fù)雜對(duì)象的寫(xiě)入和讀取
復(fù)雜對(duì)象,就是Fundation 框架下不存在的數(shù)據(jù)類,也就是我們自己定義類,就叫復(fù)雜對(duì)象后裸,復(fù)雜對(duì)象不能直接寫(xiě)入到文件瑰钮,必須借助一些工具,NSKeyedArchiver(歸檔工具)轻抱,讀取時(shí)必須借助工具類NSKeyedUnarchiver(反歸檔工具)
NSString* documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];
NSString* stringTextPath = [documentsPath stringByAppendingPathComponent:@"text.string"];
NSString* string = @"我好帥";
BOOL successed = [string writeToFile:stringTextPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
if (successed) {
NSString* stringRead = [NSString stringWithContentsOfFile:stringTextPath encoding:NSUTF8StringEncoding error:nil];
NSLog(@"stringRead--%@",stringRead);
}else{
NSLog(@"我竟然失敗了");
}
查詢所見(jiàn)文件----點(diǎn)擊Finder--前往-前往文件夾 ? ? ? 搜索即可