一、使用NSURL来读写字符串数据 1.使用NSURL来读写字符串的优势在什么地方: 优势:既可以读写本地磁盘文件 还可以读写网页文件,主要是读 甚至是ftp服务器上的文件 2.不同类型的URL地址的写法: 1)本地磁盘文件:路径该怎么写呢 我们之前怎么写,是不是直接写: /Users/xxxxxx 如果是URL格式的,应该怎么写呢,应该这么写: file://然后再去写上本地磁盘的文件的路径 比如,我要写我桌面上的1.txt应该怎么写,根目录/,下面的Users。/下面的cast,/下面的Desktop,/下面的1.txt,这么写,加上前面的file:// 就是: file:///Users/cast/Desktop/1.txt 记住啊,这是我们本地磁盘文件的路径书写方式 你就很简单,加个前缀。加个file://,加个file冒号,再来个双斜杠,就可以了 2)网页的地址:http:// 加个这个前缀就可以了 例如: http://www.baidu.com/index.html 3)ftp服务器上文件的地址:ftp:// 加个这个前缀就可以了 例如: ftp://server.baidu.com/1.txt 3.记住,不同类型的URL地址写法 1)本地磁盘文件,如果你是用URL格式的啊,这么写:file:///Users/cast/Desktop/1.txt 2)网页地址:http://www.baidu.com/index.html 3)ftp文件的地址:ftp://server.baidu.com/1.txt 4.如何去使用这种格式,比如,使用网页的,去读取这个网页的内容,读取网页的源代码,或者说,使用URL去读取本地磁盘的文件内容 1)先将地址信息包装在一个NSURL对象之中 2)语法: NSURL是个对象对不对,所以你要去创建对象对不对 NSURL *u1 = [NSURL ]; 我们说过,创建对象,首先你该怎么创建,new吗,我可不会用new啊,new是纯洁对象是不是,你要看一下有没有同名的类方法,看看类方法有没有提供一些参数对不对,我们试一下,输入一个URL NSURL *u1 = [NSURL URL…]; 一看,还真有 instancetype URLWithString:(NSString *) NSURL *u1 = [NSURL URLWithString:(NSString *)]; 记住,给一个字符串的地址 NSURL *u1 = [NSURL URLWithString:@“http://www.baidu.com”]; 我现在写了一个网页的地址吧 这个时候,u1,这个NSURL对象里面,它就封装了1个网页的地址 这个时候,字符串它就可以从u1这个地址里面去读取指定的网页的内容 那要怎么去读呢 我们有个类方法,[NSString stringWithContentsOfURL:(NSURL *) encoding:(NSStringEncoding) error:(NSError **)]; 记住,它相似的有两个,[NSString stringWithContentsOfURL:(NSURL *) usedEncoding:(NSStringEncoding *) error:(NSError **)]; 记住,用上面这个,encoding:(NSStringEncoding) [NSString stringWithContentsOfURL:(NSURL *) encoding: (NSStringEncoding) error:(NSError **)]; 第一个参数:NSURL,是不是给个URL地址啊 要给个NSURL对象对不对,好,把u1给它 第二个参数:encoding,是不是编码啊,NSUTF8编码,NSUTF8StringEncoding 第三个参数:error,给个nil 好了,返回一个什么呢,字符串,我用NSString类型的变量接一下 NSString *str = [NSString stringWithContentsOfURL: u1 encoding:NSUTF8StringEncoding error:nil]; 好了,这个时候啊,它就去会干嘛呢,它就去会从u1这个对象里面的地址当中读取内容 这个对象的地址是什么地址 http://www.baidu.com,是不是网页地址啊 好,我们打出来看一下啊 NSLog(@“%@”,str); 输出: www.baidu.com 这样,就打印出来网页的源代码了 5.你如果把一个本地的地址封装在一个NSURL对象里面 NSURL *u1 = [NSURL URLWithString:@“file:///Users/cast/Desktop/1.txt”]; 这个时候,它就会去u1这个对象里面封装的地址里面去读 输出:jack I love you 6.所以,NSURL的优势在于什么地方呢,它不仅可以读本地磁盘文件,它还可以读网页,甚至还可以读ftp上的文件 当然,那我能不能写进去呢 如果你有权限的情况下,是可以写的 那么怎么写呢 NSString *str = @“heheheheheheheh”; str有个方法,叫做writeToURL:(NSURL *) atomically:(BOOL) encoding:(NSStringEncoding) error:(NSError **) 第一个参数:NSURL,写到哪个路径 u1这个对象里面的路径 NSURL *u1 = [NSURL URLWithString:@“file:///Users/cast/Desktop/1.txt”]; 第二个参数:atomically:(BOOL),是否先写入临时文件,如果成功,再移动到指定目录里,可以给个NO 第三个参数:encoding:(NSStringEncoding) 编码,可以给它一个NSUTF8StringEncoding 第四个参数:error:(NSError **) 可以给它1个nil 返回值,一样是一个BOOL类型的,我用BOOL类型的变量接一下啊 BOOL res = [str writeToURL:u1 atomically:NO encoding:NSUTF8StringEncoding error:nil]; 那么这个时候,它就干嘛呢,它就会把这个str字符串的内容,写到u1这个地址去 这个时候,能不能写啊,可以,有权限的啊 输出:1.txt的文件内容被改为hehehehehehhe 7.但是你能不能写到网页里面去,这肯定是不行的啊,当然了,如果你有权限的情况下,你可以写啊