NSFileHandle NSFileManager类主要对于文件的操作(删除,修改,移动,赋值等等) NSFileHandle类主要对文件的内容进行读取和写入操作 NSFileHandle处理文件的步骤 1:创建一个NSFileHandle对象 2:对打开的文件进行I/O操作 3:关闭文件对象操作 常用处理方法
+ (id)fileHandleForReadingAtPath:(NSString *)path; //打开一个文件准备读取 + (id)fileHandleForWritingAtPath:(NSString *)path; //打开一个文件准备写入 + (id)fileHandleForUpdatingAtPath:(NSString *)path; //打开一个文件可以更新(读取,写入) - (NSData *)availableData; //返回可用的数据 - (NSData *)readDataToEndOfFile; //从当前的节点位置读取到文件末尾 - (NSData *)readDataOfLength:(NSUInteger)length; //从当前的节点位置开始读取指定长度的数据 - (void)writeData:(NSData *)data; //写入数据 - (unsigned long long)offsetInFile; //获取当前文件的偏移量 - (unsigned long long)seekToEndOfFile; //跳转到文件结尾 - (void)seekToFileOffset:(unsigned long long)offset; //跳转到指定文件的指定的偏移量的位置 - (void)truncateFileAtOffset:(unsigned long long)offset; //设置文件长度 - (void)synchronizeFile; //文件同步 - (void)closeFile; //关闭文件
实例代码 1(对文件进行加入数据:): @autoreleasepool {NSString *homePath=NSHomeDirectory(); NSLog(@"%@",homePath); NSString *filePath=[homePath stringByAppendingFormat:@"/Desktop/testfile"]; NSLog(@"%@",filePath); NSFileHandle *fileHandle=[NSFileHandle fileHandleForUpdatingAtPath:filePath]; [fileHandle seekToEndOfFile]; NSString *str=@"测试加入的数据为"; NSData *data=[str dataUsingEncoding:NSUTF8StringEncoding]; [fileHandle writeData:data]; [fileHandle closeFile]; } return 0;
2:对文件中的数据进行定位:
NSString *homePath=NSHomeDirectory(); NSString *filePath=[homePath stringByAppendingFormat:@"/Desktop/testfile"]; NSFileHandle *fileHandle=[NSFileHandle fileHandleForReadingAtPath:filePath]; NSUInteger length= [fileHandle availableData].length; [fileHandle seekToFileOffset:length/2]; NSData *data=[fileHandle readDataToEndOfFile]; NSString *str=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"%@",str); [特别讲一下NSData类的一些方法] 3:复制文件中的数据 //复制文件 NSString *homePath=NSHomeDirectory(); NSString *filePath=[homePath stringByAppendingFormat:@"/Desktop/testfile"]; //NSFileHandle *fileHandle=[NSFileHandle fileHandleForReadingAtPath:filePath]; NSString *targetPath=[homePath stringByAppendingFormat:@"/Desktop/outfile"]; NSFileManager *fileManager=[NSFileManager defaultManager]; BOOL result=[fileManager createFileAtPath:targetPath contents:nil attributes:nil]; if(result){ NSLog(@"create success!"); } NSFileHandle *inFileHandle=[NSFileHandle fileHandleForReadingAtPath:filePath]; NSFileHandle *outFileHandle=[NSFileHandle fileHandleForWritingAtPath:targetPath]; NSData *inData=[inFileHandle availableData]; //读出文件中所有的数据 //下面开始进行写文件 [outFileHandle writeData:inData]; [inFileHandle closeFile]; [outFileHandle closeFile]; |
【Objective-C】OC中文件读取类(NSFileHandle)介绍和常用使用方法
原创jiangqq900826 ©著作权
文章标签 IO objective-c file操作 NSFile 文章分类 移动开发
©著作权归作者所有:来自51CTO博客作者jiangqq900826的原创作品,请联系作者获取转载授权,否则将追究法律责任
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
谷歌地图数据采集软件使用方法
专为做外贸的朋友开发的一款基于谷歌地图数据采集的软件,可以采集任意国家、任意地区的公司地址、电话号码、邮件地址等数据。
谷歌地图 谷歌地图数据采集软件 谷歌地图数据采集 谷歌地图数据采集器 -
Objective-C类的使用
Objective-C教程的例题://// main.m// test//// Created by liwei on 14-10
#import main函数 objective-c 数据