NSData
字节流:当我们要把一些数据信息写入到文件或者发送到网络,在操作之前应先把数据信息转化为字节流。
NSData就是用来存储字节流的空间
例子:字符串对象和NSData字节流对象的转换
NSString * str = @"hello world!";// String对象转换为NSData对象
NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding]; //参数表示编码格式,此处采用UTF8String的编码格式
NSLog(@"%s", data.bytes); // 一个字节一个字节的以字符串形式打印NSData
// NSData对象转换为String对象
NSString * newStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", newStr);
从其它位置获取内容来创建NSData对象
可以通过磁盘或URL加载文件。如果从磁盘加载一个文件,首先你必须拥有文件的路径,它指定了该文件在磁盘中的位置。
也可以通过一个给定的URL加载文件,这样允许你通过磁盘或者网络来加载文件。
例子:加载一个文本文件到NSData对象中
假设文本文件存放在/Example/Test.txt
NSString * filePath = @"/Example/Test.txt";NSData * loadFileData = [NSData dataWithContentsOfFile:filePath];
同样,可以用类似的方式将NSData对象写入磁盘,
//要通过writeToFile:atomically:方法,此方法接收一个包含了路径的字符串,同时还有一个布尔型的值指示写入是否原子级(要么成功要么失败)
[loadFileData wirteToFile:filePath atomically:YES];