OSX中的writeToFile,附加到文件?

Cy.*_*Cy. 7 macos cocoa file

我需要不时地将一些数据写入文件,然后附加到文件中.

现在我有:

BOOL ok = [[NSString stringWithFormat:@"%f",raw] writeToFile:path atomically:YES encoding:NSUnicodeStringEncoding error:&error];
Run Code Online (Sandbox Code Playgroud)

我怎么能在文件末尾追加新内容raw

Pet*_*wis 20

这是一个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)


eri*_*icg 6

一种方法是使用fileHandleForWritingAtPath:方法获取NSFileHandle,将NSString转换为NSData,然后在将文件指针移动到文件末尾后,在NSFileHandle上调用writeData:.