Tôi đoán bạn có thể làm một vài điều:
NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:aPath];
[fileHandle seekToEndOfFile];
[fileHandle writeData:[textToWrite dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];
Lưu ý rằng điều này sẽ nối NSData để bạn tệp - KHÔNG phải là NSString. Lưu ý rằng nếu bạn sử dụng NSFileHandle, bạn phải chắc chắn rằng tập tin tồn tại trước khi tay. fileHandleForWritingAtPath
sẽ trả về 0 nếu không có tệp nào tồn tại ở đường dẫn. Xem số NSFileHandle class reference.
Hoặc bạn có thể làm:
NSString *contents = [NSString stringWithContentsOfFile:filepath];
contents = [contents stringByAppendingString:textToWrite];
[contents writeToFile:filepath atomically:YES encoding: NSUnicodeStringEncoding error:&err];
tôi tin rằng phương pháp đầu tiên sẽ là hiệu quả nhất, kể từ khi tiếp cận thứ hai liên quan đến việc đọc các nội dung của tập tin vào một NSString trước khi viết nội dung mới để các tập tin. Tuy nhiên, nếu bạn không muốn tệp của mình chứa NSData và muốn giữ văn bản đó, tùy chọn thứ hai sẽ phù hợp hơn với bạn.
[Cập nhật] Kể từ stringWithContentsOfFile là deprecated bạn có thể thay đổi cách tiếp cận thứ hai:
NSError* error = nil;
NSString* contents = [NSString stringWithContentsOfFile:filepath
encoding:NSUTF8StringEncoding
error:&error];
if(error) { // If error object was instantiated, handle it.
NSLog(@"ERROR while loading from file: %@", error);
// …
}
[contents writeToFile:filepath atomically:YES
encoding:NSUnicodeStringEncoding
error:&err];
See question on stackoverflow
Nguồn
2012-06-19 18:02:33
Tôi đoán rằng 'NSLog' sẽ không làm việc theo cách bạn muốn? – zneak
FYI, không có phương pháp nào trên 'NSString' /' NSMutableString' sẽ cho phép bạn nối nó vào một tệp. Có một ví dụ [ở đây] (http://lists.apple.com/archives/cocoa-dev/2002/Aug/msg00754.html) mặc dù. – zneak