iOS中的沙盒及对沙盒内文件的常见操作
2016-01-09 14:56
267 查看
数据持久化:数据的永久保存
数据持久化的本质是讲数据保存到文件中.
iOS当中,文件保存到沙盒中
每个程序只能在为改程序创建的文件系统中读取文件
沙盒的本质是文件夹,名字是统一分配的
每个应用程序在iOS系统下都放在了一个统一的文件夹内
1 . 沙盒的四个路径
1.1 打印该程序的根路径
NSLog(@"%@",
NSHomeDirectory());
1.2 获取document文件夹路径
NSString *docPath =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES)[0];
1.3 获取cache文件夹路径
NSString *cachePath =
NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
NSUserDomainMask, YES)[0];
1.4 获取临时文件夹路径
NSString *tempPath =
NSTemporaryDirectory();
2.1 . 简单对象的保存 (字符串,数组,字典)
以字典为例
//
字典的保存
NSDictionary *dict =
@{@"name":@"wang",
@"sex":@"男",
@"age":@"24"
};
NSString *dictPath = [docPath
stringByAppendingString:@"/个人信息.plist"];
[dict writeToFile:dictPath
atomically:YES];
NSDictionary *resuDict = [[NSDictionary
alloc] initWithContentsOfFile:dictPath];
for (NSString *key
in resuDict) {
NSLog(@"%@", resuDict[key]);
}
2.2 复杂对象的保存
// NSData的保存
NSString *str =
@"天干物燥,小心火烛";
NSData *data = [str
dataUsingEncoding:NSUTF8StringEncoding];
NSString *dataPath = [docPath
stringByAppendingString:@"/data.data"];
// data的写入
[data writeToFile:dataPath
atomically:YES];
NSLog(@"%@", dataPath);
// data的读取
NSData *resuData = [NSData
dataWithContentsOfFile:dataPath];
NSString *s = [[NSString
alloc] initWithData:resuData
encoding:NSUTF8StringEncoding];
NSLog(@"s ------ %@", s);
3.1 文件管理器 --- 对沙盒内的文件和文件夹进行管理(添加,修改,删除,移动)
首先声明NSFileManager的manager属性,并将其初始化
_manager = [[NSFileManager
alloc]
init];
3.1.1 创建文件夹
3.1.2 向已有的文件夹内添加文件 (field.text是文件夹名,field.text是文件名)
3.1.3 移动,修改文件
3.1.4 删除文件
数据持久化的本质是讲数据保存到文件中.
iOS当中,文件保存到沙盒中
沙盒:
对每一个程序创建一个沙盒,给他的文件系统,还有资源以严格的限制.每个程序只能在为改程序创建的文件系统中读取文件
沙盒的本质是文件夹,名字是统一分配的
每个应用程序在iOS系统下都放在了一个统一的文件夹内
1 . 沙盒的四个路径
1.1 打印该程序的根路径
NSLog(@"%@",
NSHomeDirectory());
1.2 获取document文件夹路径
NSString *docPath =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES)[0];
1.3 获取cache文件夹路径
NSString *cachePath =
NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
NSUserDomainMask, YES)[0];
1.4 获取临时文件夹路径
NSString *tempPath =
NSTemporaryDirectory();
2.1 . 简单对象的保存 (字符串,数组,字典)
以字典为例
//
字典的保存
NSDictionary *dict =
@{@"name":@"wang",
@"sex":@"男",
@"age":@"24"
};
NSString *dictPath = [docPath
stringByAppendingString:@"/个人信息.plist"];
[dict writeToFile:dictPath
atomically:YES];
NSDictionary *resuDict = [[NSDictionary
alloc] initWithContentsOfFile:dictPath];
for (NSString *key
in resuDict) {
NSLog(@"%@", resuDict[key]);
}
2.2 复杂对象的保存
// NSData的保存
NSString *str =
@"天干物燥,小心火烛";
NSData *data = [str
dataUsingEncoding:NSUTF8StringEncoding];
NSString *dataPath = [docPath
stringByAppendingString:@"/data.data"];
// data的写入
[data writeToFile:dataPath
atomically:YES];
NSLog(@"%@", dataPath);
// data的读取
NSData *resuData = [NSData
dataWithContentsOfFile:dataPath];
NSString *s = [[NSString
alloc] initWithData:resuData
encoding:NSUTF8StringEncoding];
NSLog(@"s ------ %@", s);
3.1 文件管理器 --- 对沙盒内的文件和文件夹进行管理(添加,修改,删除,移动)
首先声明NSFileManager的manager属性,并将其初始化
_manager = [[NSFileManager
alloc]
init];
3.1.1 创建文件夹
3.1.2 向已有的文件夹内添加文件 (field.text是文件夹名,field.text是文件名)
3.1.3 移动,修改文件
3.1.4 删除文件
相关文章推荐
- 微软发布令牌漏洞公告:可绕过 Chromium 沙盒执行任意代码
- Hibernate上路_12-一对多表单操作
- Hibernate上路_13-一对一表单操作
- Hibernate上路_14-多对多表单操作
- Hibernate上路_15-多对多表单操作
- Hibernate上路_16-继承关系映射
- Hibernate上路_17-检索策略
- Hibernate上路_18-Hibernate查询方式
- Hibernate上路_20-session管理
- Hibernate上路_21-二级缓存
- Hibernate上路_22-从表自动创建Java类
- iOS中常用的四种数据持久化方法简介
- iOS沙盒(sandbox)机制及获取沙盒路径
- 【Android】数据共享 sharedPreferences 相关注意事项
- iOS-应用程序沙盒机制(SandBox)
- ios新手沙盒 通知
- iOS 中常用的四种数据持久化的方法
- 查看IOS沙盒中文件的属性(修改日期,创建日期,大小等)
- 拷贝数据库到沙盒