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

数据的存储-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]

文件的存储方式:

据我了解文件的存储方式有一下几种方式。1.使用NSKeyedArchiver方法的归档方式。

下面对这些方式进行详细介绍:

使用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

时间: 2024-10-07 04:50:37

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

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

Android提供以下四种存储方式: SharePreference SQLite File ContentProvider Android系统中数据基本都是私有的,一般存放在“data/data/程序包名”目录下.如果要实现数据共享,正确的方式是使用ContentProvider. 参考: http://www.cnblogs.com/rond/p/3553156.html http://blog.csdn.net/flowingflying/article/details/6671548%2

iOS数据持久化存储

本文中的代码托管在github上:https://github.com/WindyShade/DataSaveMethods 相对复杂的App仅靠内存的数据肯定无法满足,数据写磁盘作持久化存储是几乎每个客户端软件都需要做的.简单如"是否第一次打开"的BOOL值,大到游戏的进度和状态等数据,都需要进行本地持久化存储.这些数据的存储本质上就是写磁盘存文件,原始一点可以用iOS本身支持有NSFileManager这样的API,或者干脆C语言fwrite/fread,Cocoa Touch本身

iOS开发之数据持久化存储

概论 数据持久化存储:所谓持久化存储就是将数据保存到硬盘中,使得应用程序或者机器在重启后可以访问之前保存的数据. 常见方式: plist文件(属性列表) preference(偏好设置) NSKeyedArchiver(归档) SQLite3(数据库) CoreData(苹果基于数据库封装的持久化存储工具,这种方式效率不高,因为会帮我们动态生成很多重复的代码,我只有写XMPP的时候会用一下,因为XMPP里面的存储用的就是CoreData) 沙盒 说到持久化存储就不得不说一下苹果的沙盒机制,苹果的

数据持久化存储

概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件(属性列表) preference(偏好设置) NSKeyedArchiver(归档) SQLite 3 CoreData 沙盒 在介绍各种存储方法之前,有必要说明以下沙盒机制.iOS程序默认情况下只能访问程序自己的目录,这个目录被称为“沙盒”. 1.结构 既然沙盒就是一个文件夹,那就看看里面有什么吧.沙盒的目

Android的数据的存储方式

数据的存储方式,总的来说分为三种: ① 文件存储: * SharedPreferences存储 * SD卡存储 ---- Environment * 数据库存储 ---- SQLite .MySQL.sqlserver.Oracle * File  存储 * ContentPrivider存储 ② 内存存储 * 集合 * 变量 ③ 网络存储 * 数据在服务器

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

在Android中,数据的存储分为两种方式: 1.直接以文件的形式存储在目录中 2.以json格式存储在数据库中 将数据以文件的存储又分为两种方式: 1.生成.txt文件 2.生成xml文件 那么今天就来详细的说一下以文件的形式存储,由于没有讲到数据库,在之后的课程中会讲到json格式存储在数据库中. 一.生成.txt文件 文件的生成无非就是我们Java中学习的输入输出流中的一部分,有Java基础相信都是很容易理解的,因为它真的很简单啦~~ 1.生成目录可以分为两种: 1)本机 2)SD卡 2.

IOS数据本地存储的四种方式--

注:借鉴于:http://blog.csdn.net/jianjianyuer/article/details/8556024 在IOS开发过程中,不管是做什么应用,都会碰到数据保存问题.将数据保存到本地,能够让程序更加流畅,不会出现让人厌恶的菊花状,使得用户的体验更好.下面是介绍数据保存的方式 第一.NSKeyedArchiver:采用归档的形式来保存数据.(归档——解档)———大量数据和频繁读写不合适使用 1.归档器的作用是将任意的对象集合转换为字节流.这听起来像是NSPropertyLis

射频识别技术漫谈(17)——射频卡中数据的存储形式

无论什么样的智能卡,不管是接触式的还是非接触式的,存储数据都是一个必须具备的功能.即使是只有一个5字节卡号的ID64格式的卡片也不例外,只不过卡里面的内容在出厂时就被厂家写死了,用户只能读出而不能写入或改变其内容罢了. 数据在存储介质中的存储格式往往和存储介质的容量有很大关系.容量小的存储器如E2PROM,一般以二进制的位(bit)或字节(byte)为单位:容量大的存储介质如硬盘.U盘,一般以文件的形式存储数据,文件有各种类型,文件大小只要别超过物理存储总量,几乎不受限制. 射频卡通常面向特定的

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

我们在实际开发中,有的时候需要储存或者备份比较复杂的数据.这些数据的特点是,内容多.结构大,比如短信备份等.我们知道SharedPreferences和Files(文本文件)储存这种数据会非常的没有效率.如果学过JavaWeb的朋友,首先可能想到的是数据库.当然了数据库是一个方案,那么是否还有其他的解决方案呢?今天我们在讲下Android笔记——Android中数据的存储方式(一) 提到的除了SharedPreferences和Files(文本文件)以外的其他几种数据储存方式:xml文件.SQL