如何将登录附加到文本文件

Vik*_*ant 1 iphone cocoa objective-c

我正在尝试将所有日志消息写入文本文件.如果它是空的并且如果已经有一些数据然后在文件末尾添加新的日志消息,我如何将所有日志写入文本文件.

我怎么能实现这一点.

  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];
Run Code Online (Sandbox Code Playgroud)

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

帮帮我怎么做呢 提前致谢.

谢谢,维卡斯.

Pet*_*wis 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;
}
Run Code Online (Sandbox Code Playgroud)