数据持久化

1、获取沙盒路径
    NSString *homePath = NSHomeDirectory();
    NSLog(@"%@",homePath);
2、获取doucuments路径
    //第一个参数: 你要寻找的文件夹    第二个参数:寻找的范围   第三个参数  是否隐藏波浪号
    // 返回的是一个数组
    NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject ;
//获取lib路径
    NSString *libPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).firstObject;
   // temp(存放临时文件,每次重启会清空)
   NSString *tempPath = NSTemporaryDirectory();
3、新建文件路径
    NSString *plistPath = [documentsPath stringByAppendingString:@"/test.plist"];
4、读取数据与写入数据
示例:
#pragma mark 文本读写
- (void)writeTxtToPath:(NSString *)path{
    NSString *string = @"这是一个测试";
    //写入
    NSError *error = nil;
    
    BOOL isSeccess = [string writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];//atomically表示:是否创建临时文件
    if (isSeccess) {
        NSLog(@"seccess");
    }
    if (error) {
        NSLog(@"error");
    }
}
- (void)readTxtToPath:(NSString *)path{
    NSString *string = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"%@",string);
    
}
#pragma mark plist读写
- (void)writeFileToPlistPath:(NSString *)path{
    NSArray *array = @[@"1",@"2",@(3),@(4),@"5"];
    [array writeToFile:path atomically:YES];
}
- (void)readFileToPlistPath:(NSString *)path{
    NSArray *array = [NSArray arrayWithContentsOfFile:path];
    NSLog(@"%@",array);
}
#pragma mark 图片
- (void)writeFileToImagePath:(NSString *)path{
    //获取图片
    UIImage *image = [UIImage imageNamed:@"16"];
    //把图片转化成数据流
    //第一种
//    NSData *data = UIImagePNGRepresentation(image);/**< 原样保存,不进行压缩 */
    //第二种
    NSData *data1 = UIImageJPEGRepresentation(image, 0.7); /**<后面的是压缩系数   返回的是jpg */
    //将数据流存入文件
    [data1 writeToFile:path atomically:YES];
}
- (void)readFileToImagePath:(NSString *)path{
    
    NSData *data = [NSData dataWithContentsOfFile:path];
    //将数据流转化成图片
    UIImage *image = [UIImage imageWithData:data];
    NSLog(@"%@",image);
}

你可能感兴趣的:(数据持久化)