我正在尝试调用打印到txt文件的方法。但是当我再次调用该方法时,它将用我的新文本覆盖文本文件中的内容。我想提交以继续添加打印内容。
-(void) print:(NSString *)name
{
NSURL *url = [NSURL fileURLWithPath:@"/here/file.txt"];
NSString *fileContent = [NSString stringWithFormat"@"%@\n", name];
[fileContent writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];
}
当我调用此方法时,我通过执行以下操作来调用它:
[name print: person1.name];
[name print: person2.name];
每当我尝试打印下一个名称时,它只会替换文本文件中的名称。我不确定如何进行concantenate并继续添加名称?
谢谢
我试过这个:
NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:@"/here/file.txt"];
NSString *textToWrite = @"hello";
[fileHandle seekToEndOfFile];
[fileHandle writeData:[textToWrite dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];
什么都没有打印。
答案 0 :(得分:0)
也许这样的事情更好(我试图整合你的解决方案)
-(void) print:(NSString *)name
{
NSString* path = [[NSBundle mainBundle] pathForResource:@"file.txt"
ofType:@"txt"];
NSString* content = [NSString stringWithContentsOfFile:path
encoding:NSUTF8StringEncoding
error:NULL];
NSString *fileContent = [NSString stringWithFormat"%@\n%@", content, name];
NSURL *url = [NSURL fileURLWithPath:path];
[fileContent writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];
}
即使我猜可能会有更有效的方式。
答案 1 :(得分:0)
NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:aPath];
if (!fileHandle){
NSLog(@"Error: File does not exist!");
} else {
[fileHandle seekToEndOfFile];
[fileHandle writeData:[textToWrite dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];
}