如何从UITextField添加文本,用逗号分隔现有的txt文件?
我使用此代码:
NSString *imageName = [NSString stringWithFormat:@"Documents/text.txt"];
NSString *textPath = [NSHomeDirectory() stringByAppendingPathComponent:imageName];
NSString *word = [NSString stringWithFormat:@"%@ ,", _wordInput.text];
[word writeToFile:textPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
如您所见,我使用此代码从_wordInput添加文本,这是我的UITextField,并添加逗号。之后我使用writeToFile选项将文本写入我的text.txt文件。
我测试过,效果很好,但每次都会覆盖现有文本..
请帮助不要覆盖文字,但请用逗号分隔。
让我说我的UITextField此时有文本“earth”,我会按下一个按钮,上面的代码将会运行..现在我的text.txt文件将包含“earth”,如果我将在UITextField上输入另一个文本并运行上面的代码,现有的文本将被覆盖,但我需要在“地球”之后添加它,
感谢。
答案 0 :(得分:1)
您需要在回写时包含原始文本。像这样:
NSString *imageName = [NSString stringWithFormat:@"Documents/text.txt"];
NSString *textPath = [NSHomeDirectory() stringByAppendingPathComponent:imageName];
NSString *existingFileContents = [NSString stringWithContentsOfFile:textPath encoding:NSUTF8StringEncoding error:nil];
NSString *newFileContents = [NSString stringWithFormat:@"%@, %@", existingFileContents, _wordInput.text];
[newFileContents writeToFile:textPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
我认为使用像write()或fwrite()这样的系统api调用会更有效率,但我从未测量过它。如果您的文本文件很大,您可能需要查看它。
答案 1 :(得分:1)
最好使用以下功能:
-(void)saveText:(NSString*)data
{
NSString *imageName = [NSString stringWithFormat:@"Documents/text.txt"];
NSString *textPath = [NSHomeDirectory() stringByAppendingPathComponent:imageName];
NSString *word = [NSString stringWithFormat:@"%@ ,", _wordInput.text];
NSFileHandle *fileHandler= [NSFileHandle fileHandleForWritingAtPath:textPath];
[fileHandler seekToEndOfFile];
[fileHandler writeData:[word dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandler closeFile];
}