1 #import "ViewController.h"
2
3 @interface ViewController ()
4
5 @end
6
7 @implementation ViewController
8
9 - (void)viewDidLoad {
10 [super viewDidLoad];
11 //由于文件对接器不能创建文件,所以必须借助文件管理器创建文件,
12 NSString *documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
13
14 NSString *filePath = [documents stringByAppendingPathComponent:@"text.txt"];
15 NSString *str = @"123456789abcdedfghij";
16 [str writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];
17 NSLog(@"%@",filePath);
18
19 //文件对接器,对文件内容进行操作
20
21 //读取
22 NSFileHandle *readFileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];
23 //从文件中得到可用数据
24 //NSData *availableData = [readFileHandle availableData];
25 //NSLog(@"%@",[[NSString alloc] initWithData:availableData encoding:NSUTF8StringEncoding]);
26
27 //从当前节点,读取指定长度的数据,须把前边的availbleData注掉,不然取不到
28 NSData *lengthData = [readFileHandle readDataOfLength:10];
29 NSLog(@"%@",[[NSString alloc] initWithData:lengthData encoding:NSUTF8StringEncoding]);
30
31 //设置节点偏移量
32 [readFileHandle seekToFileOffset:0];
33 NSData *lengthData2 = [readFileHandle readDataOfLength:5];
34 NSLog(@"%@",[[NSString alloc] initWithData:lengthData2 encoding:NSUTF8StringEncoding]);
35
36 NSData *lengthData3 = [readFileHandle readDataOfLength:5];
37 NSLog(@"%@",[[NSString alloc] initWithData:lengthData3 encoding:NSUTF8StringEncoding]);
38 //从当前节点读取到文件末尾
39 NSData *endData = [readFileHandle readDataToEndOfFile];
40 NSLog(@"%@",[[NSString alloc] initWithData:endData encoding:NSUTF8StringEncoding]);
41
42 //关闭文件
43 [readFileHandle closeFile];
44 //写入数据
45 NSFileHandle *writeHandle = [NSFileHandle fileHandleForWritingAtPath:filePath];
46
47 //设置节点位置
48 [writeHandle seekToFileOffset:10];
49 //写入
50 [writeHandle writeData:lengthData];
51 //获取节点偏移量
52 NSInteger offset = [writeHandle offsetInFile];
53 NSLog(@"%ld",offset);
54
55 //将文件长度设置为偏移量
56 [writeHandle truncateFileAtOffset:40];
57 //关闭文件
58 [writeHandle closeFile];
59
60
61 }