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

最新文章

  1. RecyclerView notifyDataSetChanged不起作用
  2. SAP接口编程 之 JCo3.0系列(01):JCoDestination
  3. WSO2 ESB
  4. apache windowns 下wamp配置多站点的问题
  5. HDU 5379 Mahjong tree
  6. RBAC(Role-Based Access Control)基于角色的访问控制
  7. 给windows共享 目录付于权限
  8. Hibernate配置过程可能发生的问题及解决方法
  9. java多线程编程核心技术——第三章
  10. B 洛谷 P3604 美好的每一天 [莫队算法]
  11. C. Brutality Educational Codeforces Round 59 (Rated for Div. 2) 贪心+思维
  12. iis8.0 https配置教程
  13. Xamarin Essentials教程实现数据的传输功能实例
  14. java的Arrays工具类
  15. [luogu3942] 将军令
  16. idea unicode自动转码设置
  17. C语言错误: CRT detected that the application wrote to memory after end of heap buffer
  18. vue项目搭建 (二) axios 封装篇
  19. css实现单行的靠左靠右和居中效果
  20. LitJson(读Exce文件写入到json文件):

热门文章

  1. 【leetcode】Excel Sheet Column Title & Excel Sheet Column Number
  2. Visual Studio 在调试时启用编辑功能
  3. CentOS6 下rsync服务器配置
  4. 【读书笔记《Android游戏编程之从零开始》】17.游戏开发基础(游戏适屏的简述和作用、让游戏主角动起来)
  5. HoloLens开发手记 - Unity之Spatial mapping 空间映射
  6. BZOJ 2179 FFT快速傅里叶
  7. mysql_upgrade命令
  8. JavaScript中的类式继承和原型式继承
  9. Android供TextView添加多个点击文字
  10. 【推荐分享】Python电子书,视频教程(Let's Python系列视频教程等)(百度网盘)
  11. PS 滤镜算法原理——拼贴
  12. Android开发 ViewConfiguration 用法
  13. cobbler自动装机服务简介与配置
  14. Power Of Two leetcode java
  15. 织梦 百度sitemap制作教程
  16. Hadoop生态圈-Flume的组件之拦截器与选择器
  17. 20162314 《Program Design & Data Structures》Learning Summary Of The Second Week
  18. 无法从“重载函数类型”为“const std::_Tree<_Traits> &”推导 <未知> 参数
  19. Unity热更新文件的服务器部署(IIS)
  20. BZOJ5290 & 洛谷4438:[HNOI/AHOI2018]道路——题解