您的位置:首页 > 其它

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文件句柄