沙盒機制
1.每一個APP安裝到手機上(或者模擬器上)都會自動生成3個文件夾這三個文件夾(Documents
,Library(Caches ,Preferences), tmp) 可以理解爲這個App的沙盒
2.並且 每個APP的文件夾都是相對獨立的只能自己的應用去訪問 不可以互相訪問
3.文件夾中 存儲的是代碼以外的所有數據
例如(圖片素材聲音視頻
文檔等)也就是說咱們的持久化文件(緩存文件)可以存儲到文件夾中
-----------------------------------------------------------------------
打印沙盒的各個文件夾路徑
- (void)path
{
每一次運行的時候(在重新運行模擬器中) 都是重新安裝的過程
都會隨機生成一個新的沙盒路徑(名字是隨機的)
注意:要獲取的是當前的沙盒路徑
打印沙盒主路徑
NSString
*appPath =NSHomeDirectory();
NSLog(@"%@",appPath);
Documents 文件夾
可以被iTunes備份可以保存一些用戶的數據及緩存文件等
NSDocumentDirectory要獲取的文件夾路徑
NSUserDomainMask搜索範圍
YES是否獲取全路徑
NSArray
*documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,NO);
NSString
*documentsPath = [documents lastObject];
NSLog(@"%@",documentsPath);
獲取Library文件夾路徑
Library可以被iTunes備份
Caches主要存儲系統緩存文件
Preferences系統配置文件
NSArray
*library =NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);
NSString *libraryPath =
[library firstObject];
NSLog(@"%@",libraryPath);
獲取tmp文件夾
主要存儲臨時文件
當手機重新啓動時 該文件夾的文件會被刪除
(有可能不重啓也會被刪除)
NSString
*tmp =NSTemporaryDirectory();
NSLog(@"%@",tmp);
}
-----------------------------------------------------------------------
簡單對象的寫入
系統的類實例出來的對象叫簡單對象
例如:字符串 字典 數組 二進制對象(NSData)
如果要寫入一個數組或者字典等容器類對象
那麼這個容器當中也要保存是簡單對象才能寫入
- (void)writeFile
{
把字符串存儲到沙盒當中
NSString
*str =@"第一章盤古開天";
xiaoshuo.txt
拼接文件存儲的路徑
NSArray
*documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString
*documentPath = [documents firstObject];
NSString *filePath = [documentPathstringByAppendingPathComponent:@"/xiaoshuo.txt"];
NSLog(@"%@",filePath);
進行簡單對象的寫入
atomically保護寫入作用
在寫入過程中出現意外情況也可以寫入成功
[strwriteToFile:filePathatomically:YESencoding:NSUTF8StringEncodingerror:nil];
寫入一個數組
NSArray
*array =
@[@"