2010-12-10 51 views
1

我正在尝试将所有日志消息写入文本文件。如何将所有日志写入文本文件(如果它为空),并且如果已经有一些数据,然后在文件末尾添加新的日志消息,我该如何写入。如何追加登录到文本文件

我怎么能做到这一点。

NSString* loggerFileName = nil; 
    loggerFileName = [thisBundle pathForResource:@"Logger" ofType:@"txt"]; 
NSMutableString *logger = [[NSMutableString alloc] initWithString:@"Loggers maintain here"]; 

    [logger appendFormat:@"\nCurrent user id is $: %@",UserID]; 
    NSLog(@"logger contains...*** : %@",logger); 


    [logger writeToFile:loggerFileName atomically:YES encoding:NSUnicodeStringEncoding error:nil]; 

通过使用上面的代码,我可以写入文件,但我无法在同一个文本文件上附加更多日志。

帮帮我,我该怎么做。提前致谢。

谢谢, Vikas s。

回答

6

这里是一个NSString类中的方法,将接收器附加到与指定的编码(通常NSUTF8StringEncoding)指定的路径。

- (BOOL) appendToFile:(NSString *)path encoding:(NSStringEncoding)enc; 
{ 
    BOOL result = YES; 
    NSFileHandle* fh = [NSFileHandle fileHandleForWritingAtPath:path]; 
    if (!fh) { 
     [[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil]; 
     fh = [NSFileHandle fileHandleForWritingAtPath:path]; 
    } 
    if (!fh) return NO; 
    @try { 
     [fh seekToEndOfFile]; 
     [fh writeData:[self dataUsingEncoding:enc]]; 
    } 
    @catch (NSException * e) { 
     result = NO; 
    } 
    [fh closeFile]; 
    return result; 
} 
+0

这工作就像一个魅力,谢谢! – rocky 2013-11-19 22:07:08