#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//NSData / NSMutableData
/*
1.计算机中文件分为哪几种?
二进制文件和文本文件,其中我们的图片、歌曲、电影等都是二进制文件,像‘.txt’的文件就是文本文件
2.客户端与服务器,或者客户端数据交流的格式为二进制(字节流)
那么对于传输给客户端的数据,在我们OC中用什么类来存储呢?即
为‘NSData’类。在‘NSD’类中,由其实例化的对象,此对象中包含大量的字节,这些字节就是我们客户端想要的信息
*/
//创建一个空的data
NSData *data1 = [NSData data];
//将字符串转换成NSData
//c语言中字符
//使用const 关键字来将一个变量变成常量。const 修饰的常量称为符号常量(有些地方也成为 命名常量),它所修饰的值一旦被设定以后,后期再无法更改。
const char *str = "hello";
NSData *data2 = [NSData dataWithBytes:str length:strlen(str)];
NSLog(@"data2 = %@",data2);
//直接将OC中字符串转成data
NSString *string = @"你好么";
NSData *data3 = [string dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"data3 =%@",data3);
//将本地文件中的数据转成data
NSData *data4 = [NSData dataWithContentsOfFile:@"/Users/ibokan2/Desktop/OC_LX_07_01/OC_LX_07_01/2.png"];
NSLog(@"data4 = %@",data4);
//将网络读取数据转化成data
NSData *data5 = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.huabian.com/uploadfile/2015/1124/20151124033032915.jpg"]];
NSLog(@"data5 = %@",data5);
//将数据写入指定文件
BOOL flog = [data5 writeToFile:@"/Users/ibokan2/Desktop/OC_LX_07_01/OC_LX_07_01/2.png" atomically:YES];
if (flog) {
NSLog(@"写入文件sussess");
}
//求data字节长度
NSUInteger length = data5.length;
NSLog(@"length = %lu",length);
//创建一个空的data NSMutableData
NSMutableData *mData = [NSMutableData data];
//增加data
[mData appendData:data5];
NSLog(@"mData = %@",mData);
if ([mData isEqualToData:data5]) {
NSLog(@"相等");
} else {
NSLog(@"不相等");
}
}
return 0;
}