//// rootviewcontroller.m
// ui18_01資料持久化 //
// created by rickie_lambert on 15/12/7.
//#import "rootviewcontroller.h"
@inte***ce
rootviewcontroller()
@end
@implementation rootviewcontroller
- (void)viewdidload {
[super
viewdidload];
// do any additional setup after loading the view.
self
.view.backgroundcolor= [uicolor
whitecolor];
//ios沙盒機制:每個應用程式都有乙個沙盒,而且只允許當前應用程式進行訪問。
//沙盒的本質:是乙個資料夾。沙盒:sandbox /*
discussion
for more information on file-system utilities, see low-level file management programming topics.討論
在ios中,主目錄是應用程式沙盒目錄。在作業系統中,它是應用程式的「目錄」或當前使用者的主目錄(如果應用程式不在乙個)。
有關檔案系統實用程式的更多資訊,請參見低級別檔案管理程式設計主題。
*/nsstring *path = nshomedirectory();
nslog
//沙河內的檔案結構:
//1、documents:主要用來儲存使用者資料,或者需要同步上傳itunes或者icloud的資料。
//2、library:
//caches:用來儲存快取檔案
//preferences:儲存偏好設定檔案
//3、tmp:主要用來儲存臨時檔案特點:系統會不定期清理該資料夾
#pragma mark 第一步、
//找到當前沙盒內某個資料夾
/**
* 引數說明 *
* @param nsdocumentdirectory 1、指定的資料夾
* @param nsuserdomainmask 2、當前沙盒的主目錄
* @param
yes 3、將當前路徑是否以「~」展開,通常都為yes;該引數的作用是否獲得相對路徑;相對路徑只能在當前資料夾內才能找到某個資料夾或檔案**/
nsstring
*documentpath = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask,
yes).
lastobject;
nslog(@"
===資料夾路徑:
%@", documentpath);
#pragma mark 第二步、
#pragma mark 第三步、寫入沙盒檔案
//在檔案內寫內容
// nsstring *string = @"這是寫入沙盒內的第一句話";
#pragma mark 第四步、再次在這個檔案中寫入內容,但不覆蓋之前已經寫過的內容,就需要用萬能的拼接方法(stringwithformat:)
/********************** 注釋 **********************/
nsstring *string2 = @"
今天真高興
";nsstring
*perstring = [
nsstring
stringwithcontentsoffile:firstfile encoding:nsutf8stringencodingerror:
nil];
nsstring *laststring = [nsstring
stringwithformat:@"%@
,%@===", perstring, string2];
/********************** 注釋 **********************/
#pragma mark 第五步:
#warning 注意:如果往檔案中寫入資料,那麼資料會將檔案內的原資料覆蓋掉。
// [string writetofile:firstfile atomically:yes encoding:nsutf8stringencoding error:nil];
//將字串物件寫入沙盒檔案
#pragma mark atomically 原子性
限制多執行緒下訪問檔案的安全性
//這裡前面的bool result 可以不要
bool
result = [laststring writetofile:firstfile atomically:
yesencoding:nsutf8stringencodingerror:
nil];
#pragma mark 第六步:
//從沙盒內的檔案讀取內容
nsstring
*readstring = [
nsstring
stringwithcontentsoffile:firstfile encoding:nsutf8stringencodingerror:
nil];
//列印寫入firstfile(即這個first.txt檔案中的內容)
nslog(@"
:%@", readstring);
/********************** 往caches資料夾下寫入字串 **********************/
#warning 注意:檔案路徑的第二種拼接方法,
//第一步:建立資料夾路徑cachespath
nsstring
*cachespath = nssearchpathfordirectoriesindomains(nscachesdirectory, nsuserdomainmask,
yes).
lastobject;
//第二步:在這個資料夾路徑下,建立乙個html檔案
//第三步:在這個html檔案中寫入內容漢字會顯示亂碼,英文正常顯示
nsstring *secondstring = @"
週六約嗎
, you are right";
//第四步:將要寫入的內容新增到檔案中
[secondstring writetofile:filepath atomically:
yesencoding:nsutf8stringencodingerror:
nil];
/********************** 陣列的讀寫 **********************/
//第一步:
nsstring
*temppath = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask,
yes).
lastobject;
//第二步:
//第三步:
nsarray
*array =
@[@"小張", @"小王", @"小李", @"小狗", @"小明"];
//第四步:
bool resultarray = [array writetofile:tempfile atomically:yes];
//第五步:
if (resultarray) {
nsarray *arr = [nsarray
arraywithcontentsoffile:tempfile];
nslog(@"
陣列:%@
,這是檔案路徑
iOS 沙盒 資料持久化
注意在這個筆記裡有部分路徑為方法,需要自己定義,在這裡一定要熟練使用獲取資料夾路徑以及路徑的拼接 什麼是資料持久化 資料的永久儲存 為什麼要做資料持久化 儲存在記憶體中的資料,程式關閉,記憶體釋放,資料丟失。這種資料是臨時的。資料持久化的本質 資料儲存成檔案,儲存到程式的沙盒裡 1.每個應用程式位於...
資料持久化 之 沙盒機制 sandBox
void viewdidload else 寫個陣列到本地 nsmutablearray array nsmutablearray arraywithobjects 王金波 王浩 張天 早日天 nil bool result1 array writetofile stuarraypath atomi...
iOS中的沙盒路徑
iphone沙箱模型的有四個資料夾,分別是什麼,永久資料儲存一般放在什麼位置,得到模擬器的路徑的簡單方式是什麼.nshomedirectory 手動儲存的檔案在documents檔案裡 nsuserdefaults儲存的檔案在tmp資料夾裡 1 documents 目錄 您應該將所有 de應用程式資...