NSFileHandle类:它需要配合NSFileManager文件管理类,对文件内容进行操作,写入数据、读取数据。
使用步骤:
1、打开文件获取NSFileHandle类的对象
2、进行文件的I/O操作
3、关闭文件
1 // 2 // main.m 3 // 02-NsFileHandle 4 // 5 // Created by ma c on 15/8/24. 6 // Copyright (c) 2015年 bjsxt. All rights reserved. 7 // 8 9 #import10 11 int main(int argc, const char * argv[])12 {13 @autoreleasepool14 {15 //NSFileHandle文件16 //1.创建文件17 NSString *str = @"this is a test.";18 NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];19 NSFileManager *fm = [NSFileManager defaultManager];20 if([fm createFileAtPath:@"1.txt" contents:data attributes:nil])21 {22 NSLog(@"文件创建成功");23 //2.创建NSFileHandle对象24 NSFileHandle *infh = [NSFileHandle fileHandleForReadingAtPath:@"1.txt"];25 if(infh)26 {27 //3.读文件内容28 //3.1读文件的全部内容29 //NSData *contents = [fh readDataToEndOfFile];30 //3.2读文件的部分内容31 NSMutableData *allData = [NSMutableData data];32 NSData *contents;33 while(1)34 {35 contents = [infh readDataOfLength:4];36 //判断是否读到文件尾37 if(!contents || [contents length] <= 0)38 {39 break;40 }41 [allData appendData:contents];42 }43 NSString *strContents = [[NSString alloc]initWithData:allData encoding:NSUTF8StringEncoding];44 NSLog(@"%@",strContents);45 }46 //4.关闭文件47 [infh closeFile];48 }49 else50 {51 NSLog(@"文件创建失败");52 }53 54 //5.写文件的例子55 [fm createFileAtPath:@"2.txt" contents:nil attributes:nil];56 //写文件时只能写已经存在的文件,自己不主动创建文件57 NSFileHandle *outfh = [NSFileHandle fileHandleForWritingAtPath:@"2.txt"];58 if(outfh)59 {60 NSData *data = [@"hello world" dataUsingEncoding:NSUTF8StringEncoding];61 //写文件62 [outfh writeData:data];63 }64 [outfh closeFile];65 }66 return 0;67 }