1 // //NSFileHandle读写数据
2 //
3 //
4 // //打开一个文件准备读取
5 // + (id)fileHandleForReadingAtPath:(NSString *)path;
6 //
7 // //打开一个文件准备写入
8 // + (id)fileHandleForWritingAtPath:(NSString *)path;
9 //
10 // //打开一个文件准备更新
11 // + (id)fileHandleForUpdatingAtPath:(NSString *)path;
12 //
13 // //从设备或通道返回可用的数据(所有)
14 // - (NSData *)availableData;
15 //
16 // //从当前的节点读取到文件末尾
17 // - (NSData *)readDataToEndOfFile;
18 //
19 // //从当前节点开始读取制定的长度数据
20 // - (NSData *)readDataOfLength:(NSUInteger)length;
21 //
22 // //写入数据(写入时会覆盖)
23 // - (void)writeData:(NSData *)data;
24 //
25 // //获取当前文件的偏移量
26 // - (unsigned long long)offsetInFile;
27 //
28 // //跳到文件的末尾(最大偏移量)
29 // - (unsigned long long)seekToEndOfFile;
30 //
31 // //跳到制定文件的偏移量
32 // - (void)seekToFileOffset:(unsigned long long)offset;
33 //
34 // //将文件的偏移量设置为需要的长度
35 // - (void)truncateFileAtOffset:(unsigned long long)offset;
36 //
37 // - (void)synchronizeFile;
38 //
39 // //关闭文件
40 // - (void)closeFile;
41
42
43
44 /**追加数据************************************************/
45
46 NSString *homePath = NSHomeDirectory();
47 NSString *filePath = [homePath stringByAppendingPathComponent:@"list1.txt"];
48
49 NSFileHandle *handle = [NSFileHandle fileHandleForUpdatingAtPath:filePath];
50 //[handle seekToEndOfFile];
51
52 [handle seekToFileOffset:10];
53 NSString *string = @"什么东西";
54 NSLog(@"%@",string);
55
56 NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
57 NSLog(@"%@",data);
58 [handle writeData:data];
59
60 [handle closeFile];
61
62 /**读取数据**********************************************/
63
64 NSString *readfilePath = [homePath stringByAppendingPathComponent:@"list111.txt"];
65
66 NSString *content = @"asdfghjkla";
67
68 NSFileManager *fm = [NSFileManager defaultManager];
69
70 [fm createFileAtPath:readfilePath contents:[content dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];
71
72 NSFileHandle *readhandle = [NSFileHandle fileHandleForReadingAtPath:readfilePath];
73
74 [readhandle seekToFileOffset:[[readhandle availableData] length]/2];
75
76 NSData *readdata = [readhandle readDataToEndOfFile];
77
78 NSString *datastring = [[NSString alloc] initWithData:readdata encoding:NSUTF8StringEncoding];
79 NSLog(@"%@",datastring);
80
81 [readhandle closeFile];
82
83 /**复制文件****************************************************/
84
85 NSString *filePath1 = [homePath stringByAppendingPathComponent:@"list111.txt"];
86 NSString *filePath2 = [homePath stringByAppendingPathComponent:@"list222.txt"];
87
88 NSFileHandle *handle1 = [NSFileHandle fileHandleForReadingAtPath:filePath1];
89 NSData *copyData = [handle1 readDataToEndOfFile];
90
91 [fm createFileAtPath:filePath2 contents:copyData attributes:nil];
92
93 [handle1 closeFile];