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 #import <Foundation/Foundation.h>
10
11 int main(int argc, const char * argv[])
12 {
13 @autoreleasepool
14 {
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 else
50 {
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 }