OC文件句柄
2016-03-25 00:00
267 查看
摘要: OC文件句柄(只能操作文件!!不可以操作文件夹)//NSFileHandle文件句柄(只能操作文件不能操作文件夹)//文件代言人,如果将NSFileHandle对象和一个文件关联以后//从文件句柄中读数据就相当于从文件中读数据,往文件句柄写数据就相当于往文件中写数据#import <Foundation/Foundation.h>#define PATH @"/Users/IOS1601/Desktop/exercise/a.txt"int main(int argc, const char * argv[]) {@autoreleasepool {#pragma mark ---文件读操作---//1.创建文件句柄对象和文件关联//方式一:以只读的形式打开文件(只能通过文件句柄对文件进行只读操作)//参数:需要和文件句柄关联的文件路径NSFileHandle *handle = [NSFileHandlefileHandleForReadingAtPath:PATH];//2.读取文件内容//a.读到文件末尾得到的是二进制数据NSData *data1 = [handle readDataToEndOfFile];//将二进制文件转换成字符串NSString *str1 = [[NSString alloc ] initWithData:data1encoding:NSUTF8StringEncoding];NSLog(@"\n%@\n",str1);//b.读取指定长度的内容(如果在执行当前这个读操作前,已经从//文件句柄中读取过数据,那么这次读取就从上次读取的位置继续读取);NSData *data2 = [handle readDataOfLength:7];NSString *str2 = [[NSString alloc] initWithData:data2 encoding:NSUTF8StringEncoding];NSLog(@"**%@",str2);//c.从指定的位置读取,设置读写进度//参数:偏移量(相对于文件的起始位置)[handle seekToFileOffset:3];NSData *data3 = [handle readDataOfLength:2];NSString *str3 =[[NSString alloc] initWithData:data3encoding:NSUTF8StringEncoding];NSLog(@"%@",str3);#pragma mark ---文件写操作---//方式二:以只写的形式打开文件(只能通过文件句柄进行只写操作)// NSFileHandle *handle1 = [NSFileHandle//将指定的数据写入文件句柄中,(会覆盖原来的数据)//参数:数据的二进制形式handle = [NSFileHandle fileHandleForWritingAtPath:PATH];NSString *str4 = @"hahha";NSData *data4 = [str4 dataUsingEncoding:NSUTF8StringEncoding];[handle writeData:data4];//每次从文件句柄中写数据的时候,都是从//第一行空的开始写,下一次写也会接着上一次写完的位置接着后面写NSString *str5 = @"luhan";NSData *data5 = [str5 dataUsingEncoding:NSUTF8StringEncoding];[handle writeData:data5];//2.设置读写进度//将读写进度定位到文件末尾(就是从文件的末尾开始写)[handle seekToEndOfFile];NSString *str6 = @"honey honey";NSData *data6 = [str6 dataUsingEncoding:NSUTF8StringEncoding];[handle writeData:data6];//返回值:当前位置到最后的长度long long length = [handle seekToEndOfFile];NSLog(@"%lld",length);//3.清除文件内容,从指定的位置开始清除内容//传入0表示把文件的所有的内容清除[handle truncateFileAtOffset:10];}return 0;}
相关文章推荐
- OC文件操作习题
- 编deb包之configure阶段出错
- GetWindowText 卡死
- 框架设计
- 编译OSG顺序
- jenkins远程发项目至tomcat 的异常处理
- java api 操作hadoop
- nutch 与 hbase的兼容问题
- 足球赛事球员信息api
- 策略模式
- Runtime的使用——利用Runtime将字典转成Model
- 自定义cell 在选中状态 cell上面的label的背景色会变没有
- js、javascript去掉前后空格
- Rust语言开发基础(七)Rust 特性
- 据说这是PHP开发人员必须具备的技能!
- ubuntu ,python 安装pillow
- 最快让你上手ReactiveCocoa之基础篇
- ASCII码对照表
- 天下数据总结ICP备案需要准备的材料
- KeyMob移动广告聚合平台----专业的应用开发者管理平台