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返回当前文件的偏移量。选择忽略这个值,如果需要,可以使用这个信息来获得程序中文件的大小
  • 相关阅读:
    Hadoop之MapReduce
    Hadoop之序列化
    Hadoop之mapreduce 实例五
    Hadoop之hive和hadoop的交互流程
    protel总结1
    将正数十进制转换为2~16进制数
    基于verilog分频器总结
    MATLAB设计FIR滤波器
    centos7+hadoop完全分布式集群搭建
    Linux下常用配置文件
  • 原文地址:https://www.cnblogs.com/cnsec/p/11515832.html
Copyright © 2011-2022 走看看