数据的存储-NSKeyedArchiver和write to file介绍
2015-03-19 19:00
302 查看
数据的存储-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
相关文章推荐
- ios之应用数据存储五:writeToFile
- IOS 开发之数据存储writeToFile的应用实例
- hadoop SequenceFile介绍 大数据 存储
- iOS-数据持久化存储(plist文件和writeToFile的使用)
- hadoop SequenceFile介绍 大数据 存储
- 【封装】WriteToFile——数据写入文件
- 数组和字典的writeToFile方法——在项目开发中处理网络数据的时候,可以把请求获得的网络数据保存为plist文件,这样更方便开发
- 读取Mysql数据表的错误 Can,create/write to file 'E:/temp/TEMP/#sql_9c4_0.MYI' Errcode:2
- hadoop SequenceFile介绍 大数据 存储
- [译]LINQ TO SQL 介绍(定义数据模型类) – Part.2
- how to solve the problem when you have chmod the directory to 777 but the apache still can not write file
- How to open/read/write a local file from an applet
- 关于CS0016: Could not write to output file ‘c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files… ‘Access is deni
- write file to pc/unix -function module
- MySQL Can't create/write to file 问题的解决
- Write a DIB to a JPEG File
- SQL Server对图像数据的存储机制介绍
- [译]LINQ TO SQL 介绍(定义数据模型类) – Part.2
- Exporting Mailbox Data to a PST File in Exchange 2007 SP1(如何导出邮箱数据为PST文件)
- writeContentsToFile问题