NSString 字符串文件读写技巧

Read

1,stringWithContentsOfFile 方法读取文件

NSString *filePath1 = @"/Users/xxx/Desktop/123.txt";
NSError *error = nil;
NSString *urlStr = [NSString stringWithContentsOfFile:filePath1 encoding:NSUTF8StringEncoding error:&error];

if (error == nil) {
    NSLog(@"urlStr = %@",urlStr);
}else {
    NSLog(@"error = %@",[error localizedDescription]);
}

参数说明:

file:绝对路径
error:
读取正确的情况下,error = nil;
读取出现错误,会将信息储存在error中

localizedDescription 方法,是读取error最有用信息部分,推荐使用

2,stringWithContentsOfURL 方法读取文件

//NSURL *url = [NSURL URLWithString:@"此处一般用url网址"];
NSURL *url = [NSURL fileURLWithPath:@"/Users/xxx/Desktop/123.txt"];//此处用本地路径
NSError *error = nil;
NSString *urlStr = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
if (error == nil) {
    NSLog(@"urlStr = %@",urlStr);
}else {
    NSLog(@"error = %@",[error localizedDescription]);
}

NSURL 注意事项:
(1) 完整url:协议头 + 主机地址 + 文件路径
(2) URLWithString 方法创建的url路径字符串中不能包含中文,如果包含中文,url将不能解析
(3) fileURLWithPath 方法创建的url路径字符串可以使用中文,并且只写本地路径即可,系统会自动补全协议头

Write

1,writeToFile方法写入文件

NSString *filePath2 = @"/Users/xxx/Desktop/123.txt";
NSString *str2 = @"i love u";
[str2 writeToFile:filePath2 atomically:YES encoding:NSUTF8StringEncoding error:nil];

atomically:
为YES时,写入文件不完整,则不会生成新文件;
为NO时,写入文件不完整,也会生成新文件

2,writeToURL 写入文件

NSString *filePath = @"/Users/xxx/Desktop/123.txt";
NSURL *url = [NSURL fileURLWithPath:filePath3];
NSString *urlStr = @"i love u";
[urlStr writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];

writeToURL 方法多次写入文件,后一次写入会覆盖前一次写入的内容

你可能感兴趣的:(NSString 字符串文件读写技巧)