NSFileManager和NSFileHandler的作用
NSFileManager类可以管理文件系统中的文件和目录,也可以定位、判断是否存在、创建、拷贝、删除文件和目录,还可以获得文件和目录的信息;
对于读写文件,NSFileManager只可以读写字符串类型的文件,而NSFileHandler是文件描述符的封装类,可以读写文件(图片、设备、网络接口)、套接字、管道和设备。
代码示例:
/**
* 读文件
*/
- (void)readFile{
//1、实例化
NSFileHandle *readFile = [NSFileHandle fileHandleForReadingAtPath:@"/tmp/Hello.txt"];
//2、读文件到文件尾部
NSData *buffer = [readFile readDataToEndOfFile];
//3、将NSData转换成字符串
NSString *temp = [[NSString alloc] initWithData:buffer encoding:NSUTF8StringEncoding];
//4、关闭文件
[readFile closeFile];
} /**
* 写文件
*/
- (void)writeFile{
//1、创建写文件处理器
NSFileHandle *writeFile = [NSFileHandle fileHandleForWritingAtPath:@"/tmp/newFile.txt"];
//2、将字符串转换成NSData
NSString *contents = @"hello everyone";
NSData *buffer = [contents dataUsingEncoding:NSUTF8StringEncoding];
//3、写NSData
[writeFile writeData:buffer];
//4、关闭文件
[writeFile closeFile];
}
关于category的一些理解
刚才在看category, 想到分类可以用来添加方法,子类也可以用来添加方法,子类还可以添加实例变量,不是比分类更好吗,为啥还要使用分类?
设想一个场景:想给系统类比如NSString新添加一个方法,而这个方法在整个项目中会大量用到,这时候如果使用子类A来添加这个方法,那么其他NSString的子类想使用这个方法,必须继承子类A,才能使用这个方法。但是有时候我们并不想继承子类A,分类的使用优势这时候出来了。
使用category给NSString新添加一个方法,其他NSString的子类想使用这个方法,直接继承NSString,并引用分类就可以使用了 !
分类通常作为一种组织框架代码的工具来使用。
查了下资料,介绍分类的用途:
1、在不创建继承类的情况下实现对已有类的扩展;
2、简化类的开发工作。例如,当一个类需要多个程序员协同开发时,分类可以将同一个类根据用途分别放在不同的源文件中,从而便于程序员独立开发相应的方法集合;
3、将常用的相关方法分组;
4、在没有源代码的情况下可以用来修复bug
NSFileManager和NSFileHandler的作用的更多相关文章
- NSFileManager和NSFileHandler的作用, category的理解
NSFileManager类可以管理文件系统中的文件和目录,也可以定位.判断是否存在.创建.拷贝.删除文件和目录,还可以获得文件和目录的信息: 对于读写文件,NSFileManager只可以读写字符串 ...
- 【原】iOS学习之文件管理器(NSFileManager)和文件对接器(NSFileHandle)
1.文件管理器(NSFileManager) 1> 主要作用及功能方法 主要作用:此类主要是对文件进行的操作(创建/删除/改名等)以及文件信息的获取. 功能方法: 2> 创建文件夹 创建所 ...
- NSFileManager(沙盒文件管理)数据持久化 <序列化与反序列化>
iOS应用程序只能在为该改程序创建的文件中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. 默认情况下 ...
- NSFileManager文件管理
前提,用到的东东: 1.文件数据类:NSData类型(二进制) 1)作用:专门用于将数据封装成二进制的类.数据(文本,图片,音频,视频....) ==> NSData类型的对象 2)编码方式: ...
- 【OC加强】辛格尔顿和[NSFileManager defaultMagager]以及其他设计模式
我们在工作中使用文件NSFileManager上课时间,创建发现1对象,此2同样的对象地址: NSFileManager *file1=[NSFileManager defaultManager]; ...
- IOS之NSFileManager 和NSFileHandle
在现阶手机app的临时缓存文件渐渐增多,在app开发中对于移动设备文件的操作越来越多,我们IOS中对于文件的操作主要涉及两个类NSFileManager 和NSFileHandle,下面我们就看看如何 ...
- iOS中关于字符 “&”的作用?
如NSFileManager中关于判断是否目录的 iOS中关于字符 "&"的作用? >> ios这个答案描述的挺清楚的:http://www.goodpm.ne ...
- if __name__== "__main__" 的意思(作用)python代码复用
if __name__== "__main__" 的意思(作用)python代码复用 转自:大步's Blog http://www.dabu.info/if-__-name__ ...
- (转载)linux下各个文件夹的作用
linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基 ...
随机推荐
- 圣诞礼物:分享几套漂亮的圣诞节 PSD 素材
马上就到圣诞节了,这篇文章要给大家分享几套精美的圣诞节相关的 PSD 设计素材,你可以免费下载使用,用于圣诞节相关的设计项目中.这些免费素材能够帮助你节省大量的时间,而且能有很好的效果. 您可能感兴趣 ...
- SQL Server代理(3/12):代理警报和操作员
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 如我们在这个系列的文章里所见,SQL Se ...
- 跨平台的.NET运行环境 Mono 3.2发布
Mono是由Xamarin主办的一个开源项目平台,旨在让开发人员轻松构建跨平台的应用程序.Mono是基于ECMA标准来创建.NET框架,包括C#编译器和公共语言运行时(CLR),可以让.NET应用程序 ...
- .NET平台下IIS7.5+无后缀名伪静态实现办法
首先新建一个应用程序池,名称任意,比如:nettest,托管管道模式先暂时设置为集成模式,等下面的一系列设置完成之后再设置成经典模式: 部署好站点,并将此站点的应用程序池设置为nettest; 选中站 ...
- HT for Web 中Painter的介绍及用法
鉴于许多同学对Painter不熟悉,所以撰写此文介绍下.Painter的中文意思是画家.漆工,那放到HT里是什么意思呢?很简单,这是HT特有的一种接口,允许开发者在拓扑及其它通用组件上使用Canvas ...
- 六、GAIA
1. GAIA CSR GAIA (Generic Application Interface Architecture)提供了一个端到端的,与主机无关的生态系统来实现主机应用程序对设备的功 ...
- Go语言接口
接口是面向对象的必备属性之一,即便是像C语言这种面向过程的语言也可以通过指向函数的指针来实现接口.我们熟知的面向对象语言中更是少不了接口.最近闲了下来,又可以开始学习Go语言了,发现Go语言的接口吸收 ...
- REOBJECT 结构
REOBJECT 结构 包含有关 rich edit 控件中的 OLE 或图像对象的信息. 语法 typedef struct _reobject { DWORD cbStru ...
- Android客户端消息推送原理简介
首先简单介绍一下Android消息推送的主要三种方式,如果你已经看过类似的文章,请直接忽略三种介绍. 1.使用SMS服务,即服务器端发送短信,然后手机客户端监听短信的广播,然后对数据进行一定的处 ...
- 扩展WPF的DataGrid按方向键移动焦点
WPF的DataGrid默认的移动行为如下: (1)当前单元格不处于编辑状态时可使用方向键移动焦点. (2)当前单元格处于编辑状态时不可使用方向键移动焦点;按Enter键,当前单元格退出编辑状态,焦点 ...