zoukankan      html  css  js  c++  java
  • 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返回当前文件的偏移量。选择忽略这个值,如果需要,可以使用这个信息来获得程序中文件的大小
  • 相关阅读:
    初窥RabbitMQ消息中间及SpringBoot整合
    博客园页面嵌入左下角小女孩
    不依赖Spring使用AspectJ达到AOP面向切面编程
    彻底搞懂计算机网络通信设备与协议
    博客园如何嵌入网易云音乐播放器
    并发编程之详解InheritableThreadLocal类原理
    2小时学会Spring Boot(IDE:eclipse)
    $.Ajax、$.Get、$.Post代码实例参数解析
    设计模式之空对象模式
    设计模式之黑板模式
  • 原文地址:https://www.cnblogs.com/cnsec/p/11515832.html
Copyright © 2011-2022 走看看