writeToFile  NSFileHandle  文件的写入

[writer writeToFile:logPath atomically:YES];这句是往文件里面写数据  这都是覆盖式写入的

atomically的YES 或 NO  :YES 表示保证文件的写入原子性,就是说会先创建一个临时文件,直到文件内容写入成功再导入到目标文件里.
                         NO  则直接写入目标文件里.


如果要采用追加式的文件写入,也就是不覆盖原文件的内容  可以采用NSFileHandle:

#import
02  
03 int main(int argc, const char * argv[])
04 {
05  
06     @autoreleasepool {
07       
08         NSFileHandle *inFile, *outFile;
09         NSData *buffer;
10          
11         //打开fileA用于读操作
12         inFile = [NSFileHandle fileHandleForReadingAtPath:@"fileA.txt"];
13          
14         if(inFile == nil)
15         {
16             NSLog(@"Open of fileA.txt reading failed");
17             return 1;
18         }
19          
20         //打开fileB用于更新操作
21         outFile = [NSFileHandle fileHandleForWritingAtPath:@"fileB.txt"];
22          
23         if(outFile == nil)
24         {
25             NSLog(@"Open of fileB for writing failed");
26             return  2;
27         }
28          
29         //找到并定位到outFile的末尾位置(在此后追加文件)
30         [outFile seekToEndOfFile];
31          
32         //读取inFile并且将其内容写到outFile中
33         buffer = [inFile readDataToEndOfFile];
34         [outFile writeData:buffer];
35         
36         //关闭读写文件
37         [inFile closeFile];
38         [outFile closeFile];
39          
40          
41  
42     }
43     return 0;
44 }

在搜索操作执行完毕之后,seekToEndOfFile返回当前文件的偏移量。选择忽略这个值,如果需要,可以使用这个信息来获得程序中文件的大小
原文地址:https://www.cnblogs.com/cnsec/p/11515832.html