iOS学习之路 文件操作

移动开发 iOS
本文介绍的是iOS学习之路 文件操作,主要讲述了文件的常用操作,我们来看详细内容。

iOS学习之路 文件操作是本文要介绍对内容,不多说,直接进入话题。因为应用是在沙箱(sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件

Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录 tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除
Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除。

在Documents目录下创建文件

代码如下:

  1. NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory   
  2.                                             , NSUserDomainMask   
  3.                                             , YES);   
  4. NSLog(@"Get document path: %@",[paths objectAtIndex:0]);   
  5.  
  6. NSString *fileName=[[paths objectAtIndex:0] stringByAppendingPathComponent:@"myFile"];   
  7. NSString *content=@"a";   
  8. NSData *contentData=[content dataUsingEncoding:NSASCIIStringEncoding];   
  9. if ([contentData writeToFile:fileName atomically:YES]) {   
  10.     NSLog(@">>write ok.");   

可以通过ssh登录设备看到Documents目录下生成了该文件。

上述是创建ascii编码文本文件,如果要带汉字,比如:

  1. NSString *fileName=[[paths objectAtIndex:0] stringByAppendingPathComponent:@"myFile"];   
  2. NSString *content=@"更深夜静人已息";   
  3. NSData *contentData=[content dataUsingEncoding:NSUnicodeStringEncoding];   
  4. if ([contentData writeToFile:fileName atomically:YES]) {   
  5.     NSLog(@">>write ok.");   

如果还用ascii编码,将不会生成文件。这里使用NSUnicodeStringEncoding就可以了。

通过filezilla下载到创建的文件打开,中文没有问题:

iOS学习之路 文件操作

在其他目录下创建文件

如果要指定其他文件目录,比如Caches目录,需要更换目录工厂常量,上面代码其他的可不变:

  1. NSArray *paths=NSSearchPathForDirectoriesInDomains(NSCachesDirectory   
  2.                                                 , NSUserDomainMask   
  3.                                                 , YES); 

使用NSSearchPathForDirectoriesInDomains只能定位Caches目录和Documents目录。

tmp目录,不能按照上面的做法获得目录了,有个函数可以获得应用的根目录:

  1. NSHomeDirectory() 

也就是Documents的上级目录,当然也是tmp目录的上级目录。那么文件路径可以这样写:

  1. NSString *fileName=[NSHomeDirectory() stringByAppendingPathComponent:@"tmp/myFile.txt"]; 

或者,更直接一点,可以用这个函数:

  1. NSTemporaryDirectory()  

不过生成的路径将可能是:

  1. …/tmp/-Tmp-/myFile.txt 

使用资源文件

在编写应用项目的时候,常常会使用资源文件,比如:

iOS学习之路 文件操作

安装到设备上后,是在app目录下的:

iOS学习之路 文件操作

以下代码演示如何获取到文件并打印文件内容:

  1. NSString *myFilePath = [[NSBundle mainBundle]   
  2.                         pathForResource:@"f"   
  3.                         ofType:@"txt"];   
  4. NSString *myFileContent=[NSString stringWithContentsOfFile:myFilePath encoding:NSUTF8StringEncoding error:nil];   
  5. NSLog(@"bundel file path: %@ \nfile content: %@",myFilePath,myFileContent); 

代码运行效果:

iOS学习之路 文件操作

小结:iOS学习之路 文件操作的内容介绍完了,希望本文对你有所帮助!

本文编写时参考了:http://www.servin.com/iphone/iPhone-File-IO.html

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-07-21 11:25:13

iOS 窗口 事件

2011-07-25 16:31:51

iOS XML 文件

2011-07-26 09:32:08

iPhone 模拟器

2011-07-21 17:11:15

iOS 日期 间隔

2011-03-17 11:08:49

Java SE

2014-06-18 09:55:29

iOS开发者学习Android

2014-07-28 14:04:26

2009-10-16 15:48:43

如何学习Java

2011-06-17 10:19:11

Qt QWidge QSetting

2011-06-17 09:58:26

Qt Chapter QObject

2011-03-21 13:28:14

MongoDB文件存取

2021-05-24 16:01:35

人工智能AI机器学习

2011-07-20 10:31:49

Cocoa Slider 颜色

2011-08-23 17:06:03

2018-02-06 09:58:48

架构师MVCiOS

2017-04-14 14:57:03

机器学习学习资源

2009-07-01 14:32:37

JSP文件操作

2009-08-18 17:11:03

C#操作XML文件

2014-07-30 09:25:55

2015-07-20 13:56:59

SDN
点赞
收藏

51CTO技术栈公众号