NSFileHandle

1.NSFileManager类主要对于文件的操作(删除,修改,移动,赋值等等)

    //判断是否有 tagetPath 文件路径,没有就创建NSFileManager *fileManage = [NSFileManager defaultManager];BOOL success = [fileManage createFileAtPath:tagetPath contents:nil attributes:nil];if (success) {NSLog(@"create success");}

2.NSFileHandle类主要对文件的内容进行读取和写入操作

①NSFileHandle处理文件的步骤

1:创建一个NSFileHandle对象

    //创建流NSFileHandle *inFileHandle = [NSFileHandle fileHandleForReadingAtPath:srcPath];NSFileHandle *outFileHandle = [NSFileHandle fileHandleForWritingAtPath:tagetPath];

2:对打开的文件进行I/O操作

    //获取文件路径NSString *homePath = NSHomeDirectory();NSString *filePath = [homePath stringByAppendingPathComponent:@"phone/Date.text"];NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:filePath];//定位到最后[fileHandle seekToEndOfFile];//定位到某个位置,100字节之后[fileHandle seekToFileOffset:100];//追加的数据NSString *str = @"add world";NSData *stringData = [str dataUsingEncoding:NSUTF8StringEncoding];//追加写入数据[fileHandle writeData:stringData];

3:关闭文件对象操作

  //关闭流[fileHandle closeFile];
常用处理方法,读
//读取文件内容
void readByFile(){//文件路径NSString *homePath = NSHomeDirectory();NSString *filePath = [homePath stringByAppendingPathComponent:@"phone/cellPhone.text"];NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];NSInteger length = [fileHandle availableData].length;//跳转到指定位置[fileHandle seekToFileOffset:length/2];NSData *data = [fileHandle readDataToEndOfFile];NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];NSLog(@"%@",str);[fileHandle closeFile];}
复制文件
void copy2Other(){NSString *homePath = NSHomeDirectory();NSString *filePath = [homePath stringByAppendingPathComponent:@"phone/cellPhone.text"];NSString *tagetPath = [homePath stringByAppendingPathComponent:@"phone/cellPhone_bak.text"];//是否有这个文件,没有则创建NSFileManager *fileManage =[NSFileManager defaultManager];BOOL success = [fileManage createFileAtPath:tagetPath contents:nil attributes:nil];if (success) {NSLog(@"create success");}//通过 NSFileHandle 读取源文件,写入另一文件中NSFileHandle *outFileHandle = [NSFileHandle fileHandleForWritingAtPath:tagetPath];NSFileHandle *inFileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];NSData *data = [inFileHandle readDataToEndOfFile];[outFileHandle writeData:data];//关闭流[inFileHandle closeFile];[outFileHandle closeFile];
}

转载于:https://www.cnblogs.com/ShaoYinling/p/4746541.html

OC中文件读取类(NSFileHandle)介绍和常用使用方法相关推荐

  1. android 继承类图,Android Studio中绘制UML类图介绍

    Android Studio中绘制UML类图介绍 Android Studio中绘制UML类图介绍 动机 最近开始阅读项目源码,从其中一个模块开始看,奈何大项目中的一个模块,对于萌新而言,也太过于复杂 ...

  2. Oracle数据库中调用Java类开发存储过程、函数的方法

    Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日  浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...

  3. 计算机c盘属性不显示安全选项,win7系统中文件夹属性安全选项卡空白的解决方法...

    在win7系统中,有小伙伴在使用文件夹属性的时候出现了问题,我们在win7系统中有小伙伴发现自己的文件夹属性中的"安全"选项卡不见了,安全选项卡是我们在win7系统中可以用来修改文 ...

  4. Java开发中文件读取方式总结

    JAVA开发中,免不了要读文件操作,读取文件,首先就需要获取文件的路径.路径分为绝对路径和相对路径. 在文件系统中,绝对路径都是以盘符开始的,例如C:abc1.txt. 什么是相对路径呢?相对路径就是 ...

  5. windows文件读取 xxe_XML注入介绍--XXE,XEE,xpath等

    网络安全 XML注入介绍--XXE,XEE,xpath等 XML注入指在请求的XML中插入攻击利用代码.根据不同的场景,可能会形成以下的漏洞形式: (1)XEE ----xml entity xpan ...

  6. java assetmanager_Android学习--Assets资源文件读取及AssetManager介绍

    APK安装过程 复制APK安装包到data/app目录下,解压并扫描安装包,把dex文件(Dalvik字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用数据目录,An ...

  7. qt中文件读取的方法(新手入门必看)

    TxT文本文件读取 qt中三个常用的处理文件的头文件: QDataStream QTextStream QFile txt文件读取(以字符数组形式读取) Widget::Widget(QWidget ...

  8. python中文件读取不出来_Python文件读取

    一文件读取 aa.txt: 登鹳雀楼 白日依山尽,黄河入海流. 欲穷千里目,更上一层楼. 1读取整个文件 filename = 'E:/COLDDEMO/Python/src/FirstDay/文件读 ...

  9. python中文件读取操作及注意事项

    我们想要读一些文件,那么可以使用read()函数.readline()函数.或者readlines()函数. 其中read()函数可以一次性读取文件中所有的内容,也可以设置read(100),也就是一 ...

最新文章

  1. 从百度地图看北京和上海
  2. Cypress 基础 - 元素的定位
  3. textjoin去重_SuperJoinText这个函数,弥补了TEXTJOIN的缺憾
  4. 862. 和至少为 K 的最短子数组
  5. 前端学习(2932):vue中的v-if
  6. 书籍推荐-记这几年看的书
  7. LeetCode 1503. 所有蚂蚁掉下来前的最后一刻(脑筋急转弯)
  8. DOM中Property与Attribute的区别
  9. Telnet服务安装及配置
  10. 知识点滴 - 什么是量词
  11. Echarts教程篇:概览
  12. ProE 5.0免安装版软件安装教程
  13. ape格式转换ogg格式使用什么软件
  14. oracle去空格去不掉,oracle去掉空格
  15. JAVA简单项目购物系统的整个开发过程详解(内含源码和注释)
  16. 深入理解Java虚拟机-垃圾收集算法
  17. 【福利帖】当我谈学习视觉时,我谈些什么
  18. 【网络模拟】网络环境模拟搭建
  19. 自然数 素数 质数_素数列表–最多20,000个素数的图表
  20. 奥林巴斯新微单E-M5II曝光:合金机身可防水

热门文章

  1. 5页面title样式修改_认识html:实现网站页面是这么简单的一回事
  2. c遗传算法的终止条件一般_Matlab2 :Matlab遗传算法(GA)优4~-r-具箱是基于基本操作 联合开发网 - pudn.com...
  3. error: storage size of ‘threads’ isn’t known
  4. μC/OS-Ⅱ 操作系统内核知识
  5. stl vector 函数_vector :: crend()函数以及C ++ STL中的示例
  6. 2016_icpc_dalian_onsite
  7. uva 10602——Editor Nottoobad
  8. LeetCode【11--盛水最多的容器】LeetCode【12 -- 整数转罗马数字】
  9. 链表题目--1 删除链表中所有等于val的值
  10. Linux系统编程(五)时序竞态