设为首页 加入收藏

TOP

[Objective-C]OC中文件读取类(NSFileHandle)介绍和常用使用方法
2014-11-23 18:02:43 来源: 作者: 【 】 浏览:9
Tags:Objective-C 文件 读取 NSFileHandle 介绍 常用 使用方法

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];
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C指针原理(87)-helloworld的C程.. 下一篇[Objective-C]OC中点语法的内存管..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: