文件归档

1.归档就是将我们平时使用的文件,变量以一定的格式写入文件中进行存储,等到需要的时候读出来就能还原成源对象的格式

2.归档操作

   2.1.在import下面定义存放文件的路径:#define PATH @"/Users/xxxxx/Downloads/dir/PigOnHole.txt";

   2.2.将字典保存到文件中

// 将字典保存到文件中
NSDictionary *dict = [[[NSDictionary alloc] initWithObjectsAndKeys:@"One",@"1",@"two",@"2",@"three",@"3", nil] autorelease];

// atomically表示是否原子操作
// 读取文件的内容,生成一个字典
[dict writeToFile:PATH atomically:YES];
NSLog(@"%@",dict);

 2.3.将数组保存到文件中

NSDictionary *array = [[[NSDictionary alloc] initWithObjectsAndKeys:@"One",@"1",@"two",@"2",@"three",@"3", nil] autorelease];
[array writeToFile:PATH atomically:YES];
NSLog(@"%@",array);

 2.4.同时将数组和字典归档到一个文件中去,需要使用NSKeyedArchiver

NSDictionary *dict1 = [[[NSDictionary alloc] initWithObjectsAndKeys:@"One",@"1",@"two",@"2",@"three",@"3", nil] autorelease];
NSArray *array1 = [[[NSArray alloc] initWithObjects:@"One",@"1",@"two",@"2",@"three",@"3", nil] autorelease];
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver * archiver = [[[NSKeyedArchiver alloc] initForWritingWithMutableData:data] autorelease];
[archiver encodeObject:array1 forKey:@"array"];
[archiver encodeObject:dict1 forKey:@"dict"];
[archiver finishEncoding];
[data writeToFile:PATH atomically:YES];

 2.5.读取已经归档的文件

NSData *data1 = [[NSData alloc] initWithContentsOfFile:PATH];
NSKeyedUnarchiver * unArchiver = [[[NSKeyedUnarchiver alloc] initForReadingWithData:data1] autorelease];
NSArray * array2 = [unArchiver decodeObjectForKey:@"array"];
NSDictionary * dict2 = [unArchiver decodeObjectForKey:@"dict"];
NSLog(@"%@",array2);
NSLog(@"%@",dict2);

  

原文地址:https://www.cnblogs.com/zwhFighting/p/4553655.html