我有一个包含一些字符串的文本文件,我可以使用[NSString initWithContentsOfFile]函数从文件中访问文本,但我接下来要做的是从该文件中删除整个文本但是保留文本在那里存档,因为我的应用程序将继续将消息字符串输入到文件中。我查看了NSString,NSStream,NSScanner,NSFileManager,NSHandle,但仍然不知道该怎么做。
我可以执行删除文件功能,但我真的不想这样做,因为我的应用程序需要循环数千次,我认为连续删除和创建文件是不明智的。
有什么想法吗?感谢
答案 0 :(得分: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];
答案 1 :(得分:0)
从文件中删除内容是再次写入整个文件。
答案 2 :(得分:0)
您是否考虑过使用NSPipe?听起来您正在尝试实现需要处理的字符串队列。有很多方法可以做到这一点。不确定在给出其他选项(如NSOperationQueue,NSNotificationCenter)时,打破文件系统是最好的方法。你也可以像使用addObject的队列一样使用NSMutableArray
来推送和删除ObjectAtIndex:来弹出字符串。如果需要保存未处理的字符串,可以很容易地将数组保存到文件中,作为暂停/终止处理和启动时重新加载的一部分