iPhone:将部分记录从一个文件传输到另一个文件

时间:2012-08-21 14:10:43

标签: iphone file ios5 file-transfer nsdocumentdirectory

我在文档目录中创建了一个文本文件,其中包含200个日志/行(使用分隔符来使用字符串分隔数据)。我想将前50个记录转移到另一个文件中,并将剩下的150个记录保存在同一个文件中。

我想到了一个逻辑,说

NSString *logString = [[NSString alloc]initWithContentsOfFile:logFilePath encoding:NSUTF8StringEncoding error:nil];
NSArray *logsArray = [logString componentsSeparatedByString:@"[;]"];
[@"" writeToFile:logFilePath atomically:YES encoding:NSUTF8StringEncoding error:&error];
for (int i=0; i<=[logsArray count];i++){
     if(i<=50){
        "write to new file"
     }
     else{
         "write to old file"
     }
}

这个逻辑可以正常工作。我担心的是,由于我正在清空并重写我的文件,因此我很有可能丢失数据。我已经创建了太多文件来备份我的数据。有没有办法处理这种情况?

谢谢 - Arun.AR  

1 个答案:

答案 0 :(得分:1)

  1. 将所有200行加载到NSArray中(就像您现在一样)。
  2. 创建一个名为“file_50_new”的新文件。
  3. 将NSArray的前50个对象写入“file_50_new”。
  4. 创建一个名为“file_150_new”的新文件。
  5. 将NSArray的其他150个对象写入“file_150_new”。
  6. 删除原始文件。
  7. 重命名新文件。
  8. 这样,您始终可以保留原始文件,直到结束。如果发生了某些事情(崩溃等),你总是拥有所有的线条。它们可能位于不同的文件中,但您可以随时通过更多逻辑将它们取回。

    实际上,最后150个对象的编写可以由Cocoa框架以原子方式完成,但这些步骤是它的要点。