一般的,文件存取都有兩種方式,這兩種方式主要是根據文件的內容來劃分的。對於由文字組成的文件可以利用字符讀寫的方式,而其他類型的文件通常用字節碼的形式來存的(當然,我們亦可以用字節碼來存文字)。
在OC中NSString類直接能夠調用內部的方法去讀區、寫入string。而不像java得用IO流類進行一系列的封裝。而且OC的文本訪問是很簡單的,比如用下面的幾行就能對特定的文本文件寫入:
#pragma 使用NSString寫入文件中:
NSError *error = nil;
NSMutableString *str = [[NSMutableString alloc] init];
for(int i=0;i<10;i++){
[str appendString:@"你好!hello\n"];
}
if([str writeToFile:@"/tmp/my.txt" atomically:YES encoding:NSUTF8StringEncoding error:&error]){
NSLog(@"success");
}
else{
NSLog(@"error:%@",[error localizedDescription]);
}
#pragma 使用NSString從文件中讀取:
NSError *error = nil;
NSString *str = [[NSString alloc] initWithContentsOfFile:@"/tmp/my.txt" encoding:NSUTF8StringEncoding error:&error];
if (str) {
NSLog(@"content:%@",str);
}
else {
NSLog(@"error:%@",[error localizedDescription]);
}然後呢?
當使用NSData的時候,我更加震驚地體會到了Objective-C的獨特簡便性,對於java/c/c++顯然有挺大的優勢,而對於python/php來說也是簡單明確的。
一下就是幾行代碼實現使用NSData的文件讀寫。
#pragma 使用NSData存取
NSError *error = nil;
NSData *data = [[NSData alloc] initWithContentsOfFile:@"/tmp/my.txt"];
if ([data writeToFile:@"/tmp/my2.txt" options:NSDataWritingAtomic error:&error]) {
NSLog(@"success");
}
else{
NSLog(@"error:%@",error);
}