ios 数据持久化初级


数据持久化就是数据的永久存储,不会随程序退出而消失.它一般存储在沙盒中

读取沙盒中文件路径的方法 如下:

/**
     *  documents路径
     *  该文件一般存储用户的一些数据
     */
    NSArray *documentsPathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *document = documentsPathArr[0];
    NSLog(@"%@", document);

// 缓存文件夹路径
    // 该文件夹 一般存储 缓存文件
    NSArray *caches = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

 // 打印tmp文件夹
    // 存储临时文件
    NSString *tmp = NSTemporaryDirectory();

// 打印沙盒的主目录路径
    NSString *homePath = NSHomeDirectory();
存储数据:
// 数据持久化 (存储)
// 简单对象写入文件
// 注意:如果要存入数组或者字典, 那么数组或字典中存储的必须是简单对象,无法存入复杂对象
- (void)writeFile
{
    // 简单对象:字符串,字典,数组,data...系统写好的
    // 复杂对象:自定义的类,比如:Person类
    NSString *str = @"是醉生梦死,是怀恋她,是看不透的他! 远在天边又近在眼前啊,那朵邻水照影的花";
    // 写入文件路径,比如在 document是路径下写入xiaoshuo.txt文件
    NSArray *documentsPathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentPath = documentsPathArr[0];
    // 拼接要写入文件的路径
    NSString *path = [NSString stringWithFormat:@"%@/xiaoshuo.txt", documentPath];
    NSLog(@"%@", path);
    
    /**
     *  简单对象写入步骤
        1.拼接写入的路径   (路径一定要拼接正确)
        2.调用写入的方法
     */
    
    
    // 写文件
    // atomically 如果YES ,在写入过程中出现程序崩溃时,不影响写入
    [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
    
    // 写入一个数组
    NSString *path1 = [NSString stringWithFormat:@"%@/shuzu.plist", documentPath];
    NSLog(@"____%@", path1);
    NSArray *array = @[@"欧阳锋", @"洪七公", @"黄药师", @"一灯大师"];
    [array writeToFile:path1 atomically:YES];
    
    // 写入一个字典
    NSString *path2 = [NSString stringWithFormat:@"%@/zidian.plist", documentPath];
    NSDictionary *dic = @{@"key1":@"我", @"key2":@"你"};
    NSLog(@"%@", path2);
    [dic writeToFile:path2 atomically:YES];
    
    // NSData的写入, 后缀.da
    NSString *path3 = [NSString stringWithFormat:@"%@/data.da",documentPath];
    NSLog(@"+_+_+_+_+%@", path3);
    NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
    [data writeToFile:path3 atomically:YES];
}
读取数据:

// 读取写入的文件
- (void)readingFile
{
    /**
     *  步骤
        1.获取路径
     *  2.从路径当中读取文件
     */
   // NSString *str = @"是醉生梦死,是怀恋她,是看不透的他! 远在天边又近在眼前啊,那朵邻水照影的花";
    // 写入文件路径,比如在 document是路径下写入xiaoshuo.txt文件
    NSArray *documentsPathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentPath = documentsPathArr[0];
    // 拼接要写入文件的路径
    NSString *path = [NSString stringWithFormat:@"%@/xiaoshuo.txt", documentPath];
    NSString *str = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"%@", str);
    [str release];
    
    // 读数组
    NSString *path1 = [NSString stringWithFormat:@"%@/shuzu.plist", documentPath];
    NSArray *arr = [NSArray arrayWithContentsOfFile:path1];
    NSLog(@"%@", arr);
    
    // 读取字典数据
    NSString *path2 = [NSString stringWithFormat:@"%@/zidian.plist", documentPath];
    NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:path2];
    NSLog(@"%@", dic);
    
    // 读取data
    NSString *path3 = [NSString stringWithFormat:@"%@/data.da",documentPath];
    NSData *data = [NSData dataWithContentsOfFile:path3];
    NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"%@",string);
    [string release];
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值