数据的存储-NSKeyedArchiver和write to file介绍

首先介绍各个文件的作用-->讲解文件位置的查找方法-->介绍数据存储的方式:1.使用归档方式存储数据 2.writetofile写入方法

iphone沙盒下的目录中存放的是什么信息?

有ios程序显示的路径,我们将找到ios的沙盒位置,里面存在一下三个目录

Documents:将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其他应该定期备份的信息。

Library:这个目录下面有两个子目录,Caches和Preferences。

Caches:用于存放应用程序专用的支持文件,保存应用程序首次启动过程中需要的信息。

Preferences:保存应用程序的偏好设置文件。你不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好设置。

tem:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。

获取文件路径的方法:

我们可以通过代码来获取相关文件的位置:
//沙盒文件的位置
NSHomeDirectory()
// CachesDirectory位置
[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]
// DocumentDirectory位置
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]
// tmp文件的位置
NSTemporaryDirectory()
// PreferencePanesDirectory文件的位置
[NSSearchPathForDirectoriesInDomains(NSPreferencePanesDirectory, NSUserDomainMask, YES) lastObject]
// 将路径用/分开
NSString *path = NSHomeDirectory();
NSArray *pathSep = [path componentsSeparatedByString:@"/"];

文件的存储方式:

据我了解文件的存储方式有一下几种方式。1.使用NSKeyedArchiver方法的归档方式。  2.使用write to file
方法写入文件。 3.使用NSUserDefault方法来存储类
 
下面对这些方式进行详细介绍:

使用NSKeyedArchiver方法的归档方式:

NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
filePath = [filePath stringByAppendingPathComponent:@"data.zip"];
[NSKeyedArchiver archiveRootObject:[@"dalsfjldkjflas" dataUsingEncoding:NSUTF8StringEncoding] toFile:filePath]; NSData *fileData = [[NSData alloc] init];
fileData = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
NSString *fileString = [[NSString alloc] initWithData:fileData encoding:NSUTF8StringEncoding];
NSLog(@"fileStirng = %@", fileString);

关键方法:

NSKeyedArchiver类的归档存储方法:archiveRootObject:toFile:

NSKeyedUnarchiver类的解压方法:unarchiveObjectWithFile

使用write to file 方法写入文件:

//    将数据保存到文件
NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
filePath = [filePath stringByAppendingPathComponent:@"stirng1.zip"];
NSLog(@"%@", filePath);
NSString *string = @"write to the file method";
[string writeToFile:filePath atomically:YES encoding:NSStringEncodingConversionExternalRepresentation error:nil]; // 从文件中提取相应的数据
NSString *stringFile = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSStringEncodingConversionExternalRepresentation error:nil];
NSLog(@"%@", stringFile);

在一般的数据类型例如:NSArray,NSMutableArray,NSDictionary,NSMutableDictionary,NSData,NSMutableData,NSString,NSMutableString,NSNumber,NSDate中,都有一个方法为writetofile。我们可以使用这个方法将数据存放到起来。

关键存放方法:writeToFile
关键提取方法:initwithContentOfFile

数据的存储-NSKeyedArchiver和write to file介绍的更多相关文章

  1. MySQL修改数据表存储引擎的3种方法介绍

    这篇文章主要介绍了MySQL修改数据表存储引擎的3种方法介绍,分别是直接修改.导出导入.创建插入3种方法, 可以参考下   MySQL作为最常用的数据库,经常遇到各种各样的问题.今天要说的就是表存储引 ...

  2. Matlab中数据的存储方式

    简介 MATLAB提供了丰富的算法以及一个易于操作的语言,给算法研发工作者提供了很多便利.然而MATLAB在执行某些任务的时候,执行效率偏低,测试较大任务量时可能会引起较长时间的等待.未解决这个问题, ...

  3. Android开发(二十四)——数据存储SharePreference、SQLite、File、ContentProvider

    Android提供以下四种存储方式: SharePreference SQLite File ContentProvider Android系统中数据基本都是私有的,一般存放在“data/data/程 ...

  4. 转载 -- iOS数据持久化存储

    作者:@翁呀伟呀 授权本站转载 概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方 ...

  5. iOS数据持久化存储

    本文中的代码托管在github上:https://github.com/WindyShade/DataSaveMethods 相对复杂的App仅靠内存的数据肯定无法满足,数据写磁盘作持久化存储是几乎每 ...

  6. 【分布式】Zookeeper数据与存储

    一.前言 前面分析了Zookeeper对请求的处理,本篇博文接着分析Zookeeper中如何对底层数据进行存储,数据存储被分为内存数据存储于磁盘数据存储. 二.数据与存储 2.1 内存数据 Zooke ...

  7. Android开发-之数据的存储方式一

    在Android中,数据的存储分为两种方式: 1.直接以文件的形式存储在目录中 2.以json格式存储在数据库中 将数据以文件的存储又分为两种方式: 1.生成.txt文件 2.生成xml文件 那么今天 ...

  8. Android笔记——Android中数据的存储方式(二)

    我们在实际开发中,有的时候需要储存或者备份比较复杂的数据.这些数据的特点是,内容多.结构大,比如短信备份等.我们知道SharedPreferences和Files(文本文件)储存这种数据会非常的没有效 ...

  9. Android笔记——Android中数据的存储方式(一)

    Android中数据的存储方式 对于开发平台来讲,如果对数据的存储有良好的支持,那么对应用程序的开发将会有很大的促进作用. 总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.其 ...

随机推荐

  1. Cookie的基本使用

    1, 如何创建cookie <?php //创建cookie信息 //这个函数用于保存cookie //第一个参数,表示cookie一个key,第二个表示val,第三个表示cookie值,在客户 ...

  2. CHROME下载地址

    Chrome官方独立中文安装包下载地址 一般我们安装Google Chrome浏览器都是访问 http://www.google.com/chrome/?hl=zh-CN 然后下载运行ChromeSe ...

  3. shell条件测试

    文件状态测试-b filename : 当filename 存在并且是块文件时返回真(返回0)-c filename : 当filename 存在并且是字符文件时返回真-d pathname : 当p ...

  4. Frame Stacking

    poj1128:http://poj.org/problem?id=1128 题意:一个二维图里面有几个相框(四条边的空心矩形框).有重叠,求重叠顺序.还有题目保证至少存在一种符合要求的序列,当有多种 ...

  5. hdu 5139 Formula

    http://acm.hdu.edu.cn/showproblem.php?pid=5139 思路:这道题要先找规律,f(n)=n!*(n-1)!*(n-2)!.....1!;  不能直接打表,而是离 ...

  6. WINDOWS下的SALT-MINION安装流水图

    简单的下一步下一步, 没多少说的,可以在安装的时候设置MASTER和MINION的东东.. 不多说,上图:

  7. android-wear开发之定义布局

    Android Wear使用跟手机一样的布局技术,但需要对特定情况进行设计.不要把手机的UI直接照搬过来.更多可查看:Android Wear Design Guidelines 当创建android ...

  8. struts2令牌,防止重复提交

    struts2的令牌,可以用来防止重复提交,其原理是在提交jsp页面中,写入一个隐藏域name="token",然后在action中定义一个变量token并get.set.在服务器 ...

  9. 安装robotframework时提示权限受限

    mba下准备装robotframework,python已默认装好,按照如下的教程继续按照robotframework,发现会提示权限受限,如图. 第二步: 安装 robotframework下载地址 ...

  10. HDOJ 2027 统计元音

    Problem Description 统计每个元音字母在字符串中出现的次数. Input 输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串. Output 对于每个 ...