iOS数据文件存储一

作者: 沉默学飞翔 | 来源:发表于2017-09-08 12:50 被阅读28次

    前言

    因为这一段时间有需求需要用到文件的存取操作,而之前基本上对于本地数据的存储就是简单数据用NSUserDefaults,复杂点的用归档,再复杂一点的用sql。对于文件存取了解不多。现在需求来了,没办法,只能脱了裤子就是...。
    文件存储分三节来说:

    正文

    如果你需要存储的只是简单的字符串,或者数组之类的数据,那么完全可以直接使用这些类自身的方法去存储即可,iOS支持直接进行文件存取的类:

    NSString     NSDictionary     NSArray  NSData
    

    自我感觉这个没有太多的知识点,就是用到一个写入方法。直接栗子时刻:

    NSString

    //1 首先找到需要存放的位置
        NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"test1.txt"];//此时文件存在路径,但是文件没有真实存在
        //2 写入字符串
        NSString *testStr = @"我是测试的字符串";
        
        //3 字符串写入
        [testStr writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
        NSLog(@"文件路径:%@",path);
        
        //4 读取字符串
        NSString *resultStr = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
        NSLog(@"读取到的字符串---%@",resultStr);
    

    效果:


    栗子一

    NSArray

    //1 存储位置
        NSString *path2 = [NSHomeDirectory() stringByAppendingPathComponent:@"array1.txt"];
        //2 写入数组
        NSArray *array1 = @[@"张三",@"历史",@"万物"];
        [array1 writeToFile:path2 atomically:YES];
        NSLog(@"文件路径-%@",path2);
        
        //3 读写数组
        NSArray *resultArray = [NSArray arrayWithContentsOfFile:path2];
        
        NSLog(@"读到的数组数据---%@",resultArray);
    

    效果:


    栗子两

    NSDictionary

    //1 文件存储路径
        NSString *path3 = [NSHomeDirectory() stringByAppendingPathComponent:@"dic1.txt"];
        //2 存入字典数据
        NSDictionary *dic1 = @{@"名字":@"张三",@"性别":@"女"};
        [dic1 writeToFile:path3 atomically:YES];
        NSLog(@"字典数据存储路径- %@",path3);
        //3读取字典数据
        NSDictionary *resultDic = [NSDictionary dictionaryWithContentsOfFile:path3];
        NSLog(@"读取到的字典数据--- %@",resultDic);
    

    效果


    栗子三

    :

    NSData

    NSString *path4 = [NSHomeDirectory() stringByAppendingPathComponent:@"data1.txt"];
        //2 图片存储
        UIImage *originImage = [UIImage imageNamed:@"test.png"];
        NSData *originData = UIImagePNGRepresentation(originImage);
        [originData writeToFile:path4 atomically:YES];
        NSLog(@"data存储位置--%@",path4);
        
        //3 取出存储的data
        NSData *resultData = [NSData dataWithContentsOfFile:path4];
        UIImage *resultImage = [UIImage imageWithData:resultData];
    

    效果:


    栗子四

    通过这几个栗子,大家应该发现了,操作这几个类去存数据,很简单,其实就是走的

    - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile
    

    这个方法。

    Demo地址链接

    相关文章

      网友评论

      • macfai:楼主,你好,这个你都是在模拟器上测试的吧,如果真机的话,为什么存取不成功啊,能试过吗

      本文标题:iOS数据文件存储一

      本文链接:https://www.haomeiwen.com/subject/ovygjxtx.html