iPhone沙盒以及文件操作的一些简单介绍


首先介绍各个文件的作用-->讲解文件位置的查找方法-->介绍数据存储的方式: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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值