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 方法多次写入文件,后一次写入会覆盖前一次写入的内容

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,115评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,805评论 18 399
  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 3,739评论 2 7
  • (1) 其实我一直都不愿意透露自己的职业,因为我知道,一旦曝光了我的职业,很多人都会对我避而远之。 最关键的是刚认...
    兔兔纸阅读 990评论 18 10
  • 冰淇淋自身的线条差点把我画错乱了哈哈哈哈哈
    lexus0905阅读 220评论 0 0