向文件中写入数据读取数据的几种方式
来源:互联网 发布:登录别人淘宝有提示吗 编辑:程序博客网 时间:2024/05/17 23:38
// ========================WriteToFile方法=========================
// 写入数据
//1.获取文件的存储路径
//用这种方法获取路径 即便以后官方将Document文件夹的名称改变了 还是可以通过此方法获取原Document文件夹的路径
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
//2. 拼接文件的路径
//拼接一个data.plist文件 用来存储数据
NSString *filePath = [path stringByAppendingPathComponent:@"data.plist"];
//2. 需要存储的数据
NSArray *namesArray = @[@"亚洲国际舞王尼古拉斯赵四",@"隔壁老王",@"小明"];
//3. 存 writeToFile 根据路径 存数据
[namesArray writeToFile:filePath atomically:YES];
//-----------------------读取数据--------------------
// 1. 获取路径
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *filePath = [path stringByAppendingPathComponent:@"data.plist"];
//2. 根据路径获取数据
NSArray *namesArray = [NSArray arrayWithContentsOfFile:filePath];
//========================NSUserDefaults方法==================
//------------------------------写入数据----------------------------
//1.获取对象
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//2.存数据
[defaults setObject:@"小明" forKey:@"name"];
[defaults setInteger:100 forKey:@"age"];
[defaults setBool:YES forKey:@"isTrue"];
//3. 非常重要: 立即同步(如果不同步会丢失数据)
[defaults synchronize];
//------------------------------读取数据----------------------------
//1.获取偏好设置的对象
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//2.获取数据
NSString *name = [defaults objectForKey:@"name"];
NSInteger age = [defaults integerForKey:@"age"];
BOOL isTrue = [defaults boolForKey:@"isTrue"];
//========================归档方法==================
//归档方法存储数据是用来存储对象的
// ----------------------归档方法存储数据数据-------------------
//1.获取路径
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *filePath = [path stringByAppendingPathComponent:@"data.plist"];
//2. 创建需要存储的对象
CZPerson *p = [[CZPerson alloc]init];
p.name = @"张三";
p.age = 101;
p.isTrue = NO;
//3. 通过归档的方式 存对象(archiveRootObject)
// 如果用归档存储对象 必须遵守NSCoding
//存数据时 必须实现 encodeWithCoder 方法
[NSKeyedArchiver archiveRootObject:p toFile:filePath];
// ~~~~~~~~~~~~~~~~~~~~~encodeWithCoder方法~~~~~~~~~~~~~~
// 此方法是告诉 系统 我想存储 对象的 哪些属性
- (void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:self.name forKey:@"name"];
[aCoder encodeInteger:self.age forKey:@"age"];
[aCoder encodeBool:self.isTrue forKey:@"isTrue"];
}
// ----------------------归档方法读取数据-------------------
//1. 获取 反归档的路径
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *filePath = [path stringByAppendingPathComponent:@"data.plist"];
//2.接收数据
// 必须实现 initWithCoder方法 initWithCoder也是NSCoding的方法
CZPerson *p = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
// ~~~~~~~~~~~~~~~~~~~~~~~~encodeWithCoder方法~~~~~~~~~~~~~~~~~
//此方法 是告诉系统 你取对象的时候 取对象的哪些属性
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
if (self = [super init]) {
self.name = [aDecoder decodeObjectForKey:@"name"];
self.age = [aDecoder decodeIntegerForKey:@"age"];
self.isTrue = [aDecoder decodeBoolForKey:@"isTrue"];
}
return self;
}
- 向文件中写入数据读取数据的几种方式
- asp.net 向xml 写入数据的几种方式
- C#向excel中写入数据的三种方式
- 向存在的文件中写入数据
- C#读取EXCEL 文件同时向文件中写入数据和Excel的Range对象
- Hadoop-写入数据的几种方式
- MFC从文件中读取数据和向文件中写入数据
- 读取txt数据,向excel中写入数据
- C++ 向文件中写入一组数据
- C++向文件中写入数据
- PHp向文件中写入数据
- 向记录文件中写入数据
- JAVA中创建ZIP文件,并向ZIP文件中写入并读取条目和数据
- 向文件中写入数据的简单操作
- json读取数据的几种方式
- Hadoop-读取数据的几种方式
- 三种向文件写入CString数据的方法
- vc++向txt文件中写入数据,追加数据
- SVM编程实现python
- 多线程ExecutorService中submit和execute区别
- 在python3.5编写了一个AES加解密程序
- 关于iOS购物车的初学写法思路
- Guava学习笔记:Google Guava 类库简介
- 向文件中写入数据读取数据的几种方式
- 278. First Bad Version
- Android Studio编译错误汇总
- 政治常识扫盲
- 欢迎使用CSDN-markdown编辑器
- 第三次实验:安装pig
- UITableView的常用方法和属性
- C语言中 sizeof 运算的值是在编译时还是运行时确定的?
- 机器视觉中的图像积分图及其实现