基本数据的存储使用的是属性存储:
属性列表是一种XML格式的文件,拓展名为plist。当然,文件的后缀可以自由定义,不影响数据的存储和读取。
如果对象是NSString、NSDictionary、NSArray、NSData、NSNumber等类型,就可以使用writeToFile:atomically:方法直接将对象写到属性列表文件中
步骤:
1、获取并创建沙盒路径
2、将数据写入路径中
基本方法:[data writeToFile:filepath atomically:YES];
data:需要写入的数据
filepath:文件路径
YES:安全写入
字符串需要进行转码存储:
[string writeToFile:filepath atomically:YES encoding:NSUTF8StringEncoding error:nil];
3、从路径中获取数据
[NSArray arrayWithContentsOfFile:filepath];
NSArray:存储的数据是何种类型,就用对应的类型去读取.
[NSDictionary dictionaryWithContentsOfFile:filepath];
[NSData dataWithContentsOfFile:filepath];
[NSString stringWithContentsOfFile:filepath encoding:(NSUTF8StringEncoding) error:nil];
// 1.获得沙盒根路径
NSString *home = NSHomeDirectory();//不推荐
NSString *document1 = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *caches = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
NSString *tmp = NSTemporaryDirectory();
// 2.document路径
NSString *docPath = [home stringByAppendingPathComponent:@"Documents"];
// 3.新建数据
NSArray *data = @[@"zhangsan", @"lisi", @"wangwu"];
NSString *filepath = [docPath stringByAppendingPathComponent:@"data.plist"];
[data writeToFile:filepath atomically:YES];
NSString *string = @"1234123sdfsd";
//存储要进行转码
[string writeToFile:filepath atomically:YES encoding:NSUTF8StringEncoding error:nil];
读取数据:
// 4.读取数据
NSArray *data = [NSArray arrayWithContentsOfFile:filepath];
NSLog(@"%@", data);
[NSDictionary dictionaryWithContentsOfFile:filepath];
[NSData dataWithContentsOfFile:filepath];
[NSString stringWithContentsOfFile:filepath encoding:(NSUTF8StringEncoding) error:nil];