Objective-c 写入数据不覆盖
时间: 2024-10-25 14:11:20 浏览: 14
在Objective-C中,如果你想要将数据写入文件而不覆盖已有的内容,你可以使用`NSOutputStream`或者`NSStringwritingToFile:atomically:`方法,它们提供了一种追加模式(`append`),允许你在文件尾部添加新的数据。
例如,使用`NSOutputStream`的方式:
```objective-c
NSOutputStream *outputStream = [NSOutputStream outputStreamToFileAtPath:@"path/to/file" append:YES];
[outputStream open];
// 写入数据
uint8_t bytes[] = {0x01, 0x02, 0x03};
const uint8_t *buffer = bytes;
NSUInteger length = sizeof(bytes);
[inputStream write:buffer maxLength:length];
[inputStream close];
```
使用`NSString`的方法:
```objective-c
NSMutableString *dataToWrite = @"Data to be appended";
[dataToWrite appendFormat:@"%@", additionalData]; // 如果有额外的数据
NSError *error;
BOOL success = [dataToWrite writeToFile:@"path/to/file" atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (success) {
NSLog(@"Data appended successfully");
} else {
NSLog(@"Error appending data: %@", error.localizedDescription);
}
```
这两种方法都保证了写入新数据不会替换原有的内容,而是增加到现有文件的末尾。
阅读全文