O-C的io与文件

IOS学习笔记-----OC的IO与文件

Pre:IO?首先 I  可以来自于,文件,网络,键盘,其他外设;O来自于文件,网络,屏幕,外设。程序的运行离不开IO。算法,函数都是必须有输入输出。O-C的io与java有些不一样。java是引入了流的概念,而O-C直接用NSData作为一个缓冲,一个转换,来处理io,可以说是用到了中介者模式。

 

1        NSData &NSMutableData

1.1       是什么:

一个是静态,一个是动态,字节缓冲的。作用:读数据到NSData,从NSData中写数据。Input->NSData->Output

文档解释:NSData creates static data objects, and NSMutableData creates dynamic data objects. NSData and NSMutableData are typically used for data storage and are also useful in Distributed Objects applications, where data contained in data objects can be copied or moved between applications.

1.2 怎么用

就是缓冲的作用

         data

         dataWithContentsOfFile:

         dataWithContentOfURL:

         dataWithData

NSDataNSString相互转化:使用NSStringdataUsingEncoding:方法,initWithDataencoding

         writeToFileatomically:

         writeToURL: atomically:

 

length

isEqualToData:

 重要的用途:

1)在网络请求得到的响应会返回NSData对象;2)在对象归档时,可以将对象归档为NSMutableData,在将这个data写入文件。


2         NSFileManager

2.1       文件和目录的抽象,用于操作文件或目录。与javaFile的不同之处,在于NSFileManager能够获取文件的内容返回NSData对象,java的File仅仅是抽象的描述不能得到内容;

作用:访问文件属性和内容,创建,删除,移动,和复制,查看目录包含的内容(递归,非递归)defaultManage获取单例对象

2.2  可以使用NSPathUtiliies.h管理路径: 

NSUserName();

NSFullUserName();

NSHomeDictionary();


3         NSFileHandler处理文件的IO

3.1       处理文件,类似javaRandomAccessFile。并不能判断文件是否存在,不能创建文件这一点要切记。

3.2 读写文件的内容:readDatawriteData

4          NSURL

5  NSBundle处理项目相关的资源

5.1  mainBundle获取单例:然后调用pathForResource,或URLForResource;iOS开发中经常会使用


6  对象归档

 

6.1  类似于java的序列化。使用NSKeyedArchiver

 

两种归档方式:1)调用类方法 archiveRootObjecttoFile:;反归档:unarchiveObjectWithFile:返回指定的对象;

                            2 用一个空的NSMutableData初始化NSKeyedArchiver,然后调用实例方法 encodObjectforKey:;之后吧data写入文件。反归档:decodeObjectForKey

 

归档可以实现深度复制;

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值