【使用NSURL读写字符串 Objective-C语言】

一、使用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.但是你能不能写到网页里面去,这肯定是不行的啊,当然了,如果你有权限的情况下,你可以写啊

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风清晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值