iOS-初级数据持久化

1.数据持久化:就是数据的永久存储

2.数据持久化的本质:数据保存成文件,存储到程序中的沙盒中

疑问那么沙盒构成部分是哪些呢???以下是它的构成部分:

Document           存储用户数据,需要备份的信息

Library/Caches     存储缓存文件,程序专用的支持文件

Library/Preference 存储应用程序的偏好设置文件

.app               程序包

tmp                存储临时文件


3.沙盒机制

每个应用程序位于文件系统的严格限制部分

每个程序只能在为该程序创建的文件系统中读取

每个程序在iOS系统内都放在了统一的文件目录下

沙盒的本质就是一个文件夹,名字随机分配的,按照UUID标示符标记分配


4.获取沙盒目录路径的方法

NSHomeDirectory          沙盒主路径

NSDocumentDirectory       Documents文件夹

NSLibraryDirectory        Library文件夹

NSCachesDirectory         Caches文件夹

NSTemporaryDirectory      temp文件夹


5.获取沙盒文件的路径


iOS-初级数据持久化_第1张图片

奋斗这里的NSLog是可以在控制台输出路径





奋斗在桌面应用程序中找到Finder  右击鼠标按钮,找到前往文件夹

iOS-初级数据持久化_第2张图片

奋斗将控制到输出的路径复制粘贴到前往文件夹中

iOS-初级数据持久化_第3张图片


奋斗沙盒所存在的位置




#pragma mark ------获取沙盒中子文件路径的方式1---拼接路径

//获取Document文件夹路径

    NSString *document = [homePath stringByAppendingPathComponent:@"/Documents"];

    NSLog(@"文件路径 = %@",document);

    //获取Library文件夹路径

    NSString *library = [homePath stringByAppendingPathComponent:@"/Library"];

    NSLog(@"%@",library);


#pragma mark ------获取沙盒中子文件路径的方式2---通过函数获取

//获取Document文件夹路径

    NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

    NSLog(@"documentPath = %@",documentPath);

    //获取Library文件夹路径

    NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];

    NSLog(@"libraryPath = %@",libraryPath);

    //获取caches路径

    NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];

     NSLog(@"cachesPath = %@",cachesPath);

    //获取tmp路径

    NSString *tmpPath = NSTemporaryDirectory();

    NSLog(@"tmpPath = %@",tmpPath);


    //应用程序路径

    NSString *path = [[NSBundle mainBundle] resourcePath];

    NSLog(@"%@",path);

    






生气简单文件的写入 与 读取

#pragma mark-----字符串对象的写入 读取

   //第一步,创建字符串对象

    NSString *poem =@"《相思》\n红豆生南国,\n春来发几枝。\n愿君多采撷,\n此物最相思。";

    //第二步,写入文件构造字符串文件存储路径 创建txt文件

惊恐惊恐惊恐 在这里需要注意的一点是被创建的文件,它的后缀要与文件应显示的格式后缀保持一致,不然里面的内容会为空(例如:@"/text.txt"

    NSString *strPath = [documentPathstringByAppendingPathComponent:@"/text.txt"];

    //第三步:将文件写入指定路径

    [poem writeToFile:strPathatomically:YESencoding:NSUTF8StringEncodingerror:nil];

    NSLog(@"strPath = %@",strPath);

    //第四步:读取txt

    NSString *readText = [NSStringstringWithContentsOfFile:strPath encoding:NSUTF8StringEncodingerror:nil];

    NSLog(@"readText = %@",readText);

      

#pragma mark-------数组对象的写入 读取

    //写入

    //第一步:构造一个数组对象

    NSMutableArray *strArray = [NSMutableArrayarrayWithObjects:@"练晓俊",@"郭亚茹",@"马娟娟",@"韩苇棋",nil];

    //第二步:构造数组存储路径,创建plist文件

    NSString *arrayPath = [documentPathstringByAppendingPathComponent:@"/array.plist"];

    //第三步:将数组写入 plist

    [strArray writeToFile:arrayPath atomically:YES];

    NSLog(@"arrayPath = %@",arrayPath);

    //数组中添加新元素

    [strArray addObject:@"闫卫敏"];

    [strArray writeToFile:arrayPath atomically:YES];

    //读取

    NSArray *readArray = [NSArrayarrayWithContentsOfFile:arrayPath];

    NSLog(@"%@",readArray);

    

#pragma mark------字典对象的写入 读取

    //写入

    //第一步:构造一个字典

    NSDictionary *dic = @{@"name":@"韩苇棋",@"age":@"22",@"sex":@"",@"hobby":@[@"听歌",@"看综艺节目",@"看动漫"]};

    //第二步:构造存储字典的plist文件的存储路径

    NSString *dicPath = [documentPathstringByAppendingPathComponent:@"dic.plist"];

    //第三步:将字典写入plist

    [dic writeToFile:dicPath atomically:YES];

    NSLog(@"dic = %@",dicPath);

    //第四步:读取

    NSDictionary *readDic = [NSDictionarydictionaryWithContentsOfFile:dicPath];

    NSLog(@"%@",readDic);

    

#pragma mark------NSData对象的写入 读取

    //第一步:创建图片

    UIImage *image = [UIImageimageNamed:@"head_19.jpg"];

    //第二步:将图片转换成二进制

    NSData *imageData = UIImageJPEGRepresentation(image, 0.5);

    //第三步:构造NSData文件.da的存储路径

    NSString *imagePath = [documentPathstringByAppendingPathComponent:@"/data.da"];

    //第四步:将图片写入data.da文件中

    [imageData writeToFile:imagePath atomically:YES];

    NSLog(@"image = %@",imagePath);

    //第五步:读取

    UIImage *readImage = [UIImageimageWithContentsOfFile:imagePath];

    NSLog(@"%@",readImage);


根据构造出的路径我们通过查找就可以在文件内看到生成的相应文件:

  iOS-初级数据持久化_第4张图片






你可能感兴趣的:(初级数据持久化沙盒)