IOS文件iOS小狮子ios实用开发技巧

iOS数据文件存储一

2017-09-08  本文已影响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地址链接

上一篇下一篇

猜你喜欢

热点阅读