2010-12-10 23 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