0

我有一个包含一些字符串的文本文件,我可以使用 [NSString initWithContentsOfFile] 函数从文件中访问文本,但我接下来要做的是从该文件中删除整个文本,但将文本文件保留在那里我的应用程序将继续将消息字符串输入文件。我浏览了 NSString、NSStream、NSScanner、NSFileManager、NSHandle,但仍然不知道该怎么做。

我可以执行删除文件功能,但我真的不想这样做,因为我的应用程序需要循环数千次,我认为不断删除和创建文件是不明智的。

任何想法?谢谢

4

3 回答 3

2

您不必从文件中删除内容。当您准备好将新信息放入文件时 - 您将覆盖旧文件。

NSString *str = @"test string";
NSError * error = nil;
[str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (error)
    NSLog(@"err %@", [error localizedDescription]);

当您附加其他数据时:

NSFileHandle *myHandle = [NSFileHandle fileHandleForUpdatingAtPath:appFile];
[myHandle seekToEndOfFile];
[myHandle writeData:data];
[myHandle closeFile];
于 2010-06-30T09:38:07.643 回答
0

从文件中删除内容是再次写入整个文件。

于 2010-06-30T08:52:53.160 回答
0

您是否考虑过使用 NSPipe?听起来您正在尝试实现需要处理的字符串队列。有很多方法可以做到这一点。考虑到其他选项(例如 NSOperationQueue、NSNotificationCenter),不确定破坏文件系统是否是最佳方法。您也可以NSMutableArray像使用队列一样使用 addObject: 来推送和 removeObjectAtIndex: 来弹出字符串。如果您需要保存未处理的字符串,很容易将数组保存到文件中作为挂起/终止处理的一部分并在启动时重新加载

于 2010-06-30T12:50:20.173 回答