0

如何将 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];

如您所见,我使用此代码从我的 UITextField _wordInput 添加文本,并添加逗号。之后,我使用 writeToFile 选项将文本写入我的 text.txt 文件。

我测试过,效果很好,但是,每次它都会覆盖现有的文本..

请帮助不要覆盖文本,但用逗号分隔。

假设此时我的 UITextField 有文本“地球”,我将按下一个按钮,上面的代码将运行。现在我的 text.txt 文件将包含“地球”,如果我将在 UITextField 上输入另一个文本并在上面运行代码,现有文本将被覆盖,但我需要在“earth”之后添加它

谢谢。

4

2 回答 2

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 调用会更有效,但我从未测量过它。如果您的文本文件很大,您可能需要查看它。

于 2013-08-08T22:05:05.680 回答
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];
}
于 2013-08-08T22:08:04.250 回答