Objective c 打印到txt文件时如何连接?
我试图调用一个打印到txt文件的方法。但是当我再次调用该方法时,它将用我的新文本覆盖文本文件中的内容。我想继续添加打印的内容Objective c 打印到txt文件时如何连接?,objective-c,Objective C,我试图调用一个打印到txt文件的方法。但是当我再次调用该方法时,它将用我的新文本覆盖文本文件中的内容。我想继续添加打印的内容 -(void) print:(NSString *)name { NSURL *url = [NSURL fileURLWithPath:@"/here/file.txt"]; NSString *fileContent = [NSString stringWithFormat"@"%@\n", name]; [fileContent writeToURL:url ato
-(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];
每次我尝试打印下一个名称时,它都会替换文本文件中的名称。我不确定如何连接并继续添加名称
多谢各位
我试过这个:
NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:@"/here/file.txt"];
NSString *textToWrite = @"hello";
[fileHandle seekToEndOfFile];
[fileHandle writeData:[textToWrite dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];
没有打印任何内容。也许这样更好(我尝试集成您的解决方案) 尽管我想可能有更有效的方法
NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:aPath];
if (!fileHandle){
NSLog(@"Error: File does not exist!");
} else {
[fileHandle seekToEndOfFile];
[fileHandle writeData:[textToWrite dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];
}
请看这里:更新了我的第一篇文章。请注意,如果使用NSFileHandle,则必须确保该文件已存在。如果路径中不存在文件,fileHandleForWritingAtPath将返回nil。请参阅NSFileHandle类参考。同样,您也可以使用第二种方法:
NSString*contents=[NSString stringWithContentsOfFile:filepath];contents=[contents stringByAppendingString:textToWrite];[contents writeToFile:filepath原子:YES编码:nsunicoding错误:&err]代码>文件确实存在于该确切位置。请调试并查看fileHandleWritingAtPath
之后的fileHandle是否为nil
。如果它是nil
则在该路径上没有可写入的文件:我不知道如何执行该操作
NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:aPath];
if (!fileHandle){
NSLog(@"Error: File does not exist!");
} else {
[fileHandle seekToEndOfFile];
[fileHandle writeData:[textToWrite dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];
}