OC-Day8____文件归档

2015.3.9

#import <Foundation/Foundation.h>

//plist

//代码方式

//

//plist 文件的根节点只能是数组或者字典

//plist 文件只能存储 NSString NSArray NSDictionary

//NSData NSDate NSNumber BOOL

int main(int argc, const char * argv[]) {

@autoreleasepool {

//        NSFileManager *fm = [NSFileManager defaultManager];

//        [fm createFileAtPath:@"/Users/zhangxueming/Desktop/test/app.plist" contents:nil attributes:nil];//创建一个plist文件

//以字典为根节点创建plist文件

NSMutableDictionary *mulDict = [NSMutableDictionary dictionary];

[mulDict setObject:@"1" forKey:@"one"];

[mulDict setObject:@"2" forKey:@"two"];

[mulDict setObject:@"3" forKey:@"three"];

[mulDict setObject:[NSNumber numberWithInt:123] forKey:@"number"];

[mulDict setObject:[NSDate date] forKey:@"date"];

[mulDict writeToFile:@"/Users/zhangxueming/Desktop/test/ios.plist" atomically:YES];//如果该文件不存在,自动创建该文件

//以数组为根节点创建plist文件

NSMutableArray *mulArr = [NSMutableArray array];

[mulArr addObject:@"qianfeng"];

[mulArr addObject:@"hello world"];

[mulArr addObject:mulDict];

[mulArr addObject:[NSNumber numberWithBool:YES]];

[mulArr writeToFile:@"/Users/zhangxueming/Desktop/test/array.plist" atomically:YES];

//直接在xcode中创建plist文件

//xcode --> Resourse --> Property List

}

return 0;

}

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

@autoreleasepool {

//如果文件根节点是NSDictionary

//用字典类的方法读取plist文件

//- (NSDictionary *)initWithContentsOfFile:(NSString *)path;

NSDictionary  *dictContent = [NSDictionary dictionaryWithContentsOfFile:@"/Users/zhixiang/Desktop/qfile.plist"];

NSLog(@"dict = %@", dictContent);

//NSArray

//- (NSArray *)initWithContentsOfFile:(NSString *)path;

NSArray *arrayContent = [NSArray arrayWithContentsOfFile:@"/Users/zhixiang/Desktop/qfile.plist"];

NSLog(@"arrayContent = %@", arrayContent);

}

return 0;

}

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

@autoreleasepool {

char buf[100]={};

scanf("%s", buf);

NSString *dstStr = [NSString stringWithUTF8String:buf];

NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:@"/Users/zhangxueming/Desktop/ios1501/ios1501OC讲课/day8_文件归档/OC4_plist文件练习/OC4_plist文件练习/qfile.plist"];

NSDictionary *framesObj = [dict objectForKey:@"frames"];

NSDictionary *pictureObj = [framesObj objectForKey:dstStr];

NSLog(@"%@", [pictureObj objectForKey:@"textureRect"]);

}

return 0;

}

#import <Foundation/Foundation.h>

//归档: 把内存中的数据按照指定的格式存储到指定的文件中的过程

//解归档: 把文件中存储的数据读取到内存中

int main(int argc, const char * argv[]) {

@autoreleasepool {

#if 0

//归档

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"1",@"one",@"2",@"two",@"3",@"three", nil];

BOOL ret = [NSKeyedArchiver archiveRootObject:dict toFile:@"/Users/zhangxueming/Desktop/test/archfile"];

if (ret) {

NSLog(@"文件归档成功");

}

else

{

NSLog(@"文件归档失败");

}

#else

//解归档

NSDictionary *dict = [NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/zhangxueming/Desktop/test/archfile"];

NSLog(@"dict = %@", dict);

#endif

}

return 0;

}

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

@autoreleasepool {

#if 0

NSString *str = @"千锋教育";

NSData *data= [NSKeyedArchiver archivedDataWithRootObject:str];

BOOL ret = [data writeToFile:@"/Users/zhangxueming/Desktop/test/datafile" atomically:YES];

if (ret) {

NSLog(@"文件归档成功");

}

else

{

NSLog(@"文件归档失败");

}

#else

//解归档

NSData *data = [NSData dataWithContentsOfFile:@"/Users/zhangxueming/Desktop/test/datafile"];

NSString *strObj=[NSKeyedUnarchiver unarchiveObjectWithData:data];

NSLog(@"str = %@", strObj);

#endif

}

return 0;

}

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

@autoreleasepool {

#if 0

NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"1",@"one",@"2",@"two",@"3",@"three", nil];

NSArray *arr = [[NSArray alloc] initWithObjects:@"hello",@"world",@"qian",@"feng", nil];

NSMutableData *mulData = [NSMutableData data];

//通过mulData构造archiver

NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:mulData];

//编码

[archiver encodeObject:dict forKey:@"dictionary"];

[archiver encodeObject:arr forKey:@"array"];

//结束编码

[archiver finishEncoding];

//写文件

BOOL ret =[mulData writeToFile:@"/Users/zhangxueming/Desktop/test/手动归档.txt" atomically:YES];

if (ret) {

NSLog(@"文件归档成功");

}

else

{

NSLog(@"文件归档失败");

}

#else

//解归档

NSData *data = [NSData dataWithContentsOfFile:@"/Users/zhangxueming/Desktop/test/手动归档.txt"];

NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];

NSDictionary *dict = [unarchiver decodeObjectForKey:@"dictionary"];

NSArray *array = [unarchiver decodeObjectForKey:@"array"];

NSLog(@"dict = %@", dict);

NSLog(@"array = %@", array);

#endif

}

return 0;

}

#import <Foundation/Foundation.h>

//json javaScript 子集

//"key":"value"

//最外层结构 为字典(居多)或者数组

int main(int argc, const char * argv[]) {

@autoreleasepool {

NSData *data = [NSData dataWithContentsOfFile:@"/Users/zhangxueming/Desktop/json.txt"];

NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

//NSLog(@"dict = %@", dict);

NSDictionary *weather = [dict objectForKey:@"weatherinfo"];

NSLog(@"%@", weather);

//        for (id obj in weather) {

//            NSLog(@"%@:%@",obj, [weather objectForKey:obj]);

//        }

}

return 0;

}

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

@autoreleasepool {

NSURL *url = [NSURL URLWithString:@"http://ip.taobao.com/service/getIpInfo.php?ip=63.223.108.42"];

NSData *data = [NSData dataWithContentsOfURL:url];

NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

NSLog(@"dict = %@", dict);

}

return 0;

}

时间: 2024-12-23 00:53:16

OC-Day8____文件归档的相关文章

Object-C文件归档

在学习IPhone开发中,有时我们不可避免的需要永久化存储一些数据,以供应用下次打开该应用时,方便我们操作,这就有点像单机游戏中得存档一样,我们读取存档,就可以在存档的位置继续游戏. 概念:归档是把对象写入文件保存在硬盘中,当再次重新打开程序时,可以还原这些对象. 那么在OC中应该怎样实现这种存档的机制? 在OC中有四中类型是可以直接使用WriteFile进行归档的,分别是NSString,NSArray,NSDictionary,NSData.(当然它们的子类肯定也是可以的) 下面是一个示例:

iOS:文件归档和解归档的详解和使用

文件归档和解归档: 用途: 所谓文件归档,就是把需要存储的对象数据存储到沙盒的Documents目录下的文件中,即存储到了磁盘上,实现数据的持久性存储和备份.解归档,就是从磁盘上读取该文件下的数据,用来完成用户的需求.对象归档是将对象归档以文件的形式保存到磁盘中(也称为序列化,持久化),使用的时候读取该文件的保存路径的读取文件的内容(也称为接档,反序列化),(对象归档的文件是保密的,在磁盘上无法查看文件中的内容,而属性列表是明文的,可以查看). 区别: 通过文件归档产生的文件是不可见的,如果打开

《Linux菜鸟入门》不同系统文件传输及文件归档压缩

ip addr show br0 查看真实主机的ip ● 文件归档 1. 文件归档是把多个文件变成一个归档文件 参数 tar  c             创建 f             指定归档名称 t             显示归档文件的内容 r             向归档文件内继续添加文件 --get              从归档文件中取出单个文件 --delete                删除单个文件 x             取出归档文件中的所有文件 -C     

NS前缀\OC中的注释\访问OC原文件、C原文件中的函数

///////////////////////////////////////// //////////////////////////////////////// NS前缀 NS来自于NeXTStep的一个软件 NeXT Software OC中不支持命名空间(namespace) NS是为了避免命名冲突而给的前缀 看到NS前缀就知道是Cocoa中的系统类的名称 "@"的使用方法 1.@""这个符号表示将C中的字符串转化为OC中的字符串对象 2.@符号 OC中的大

OC多文件开发介绍

OC多文件开发介绍: 1.为什么要使用多文件? 在工作中,通常把不同的类放到不同的文件中,每个类的声明和实现分开,声明写在.h头文件中,实现写在相应的.m文件中去,类名是什么,文件名的前缀就是什么.假设有两个类,分别是Person类和Dog类,则通常有下面五个文件: (1)Person.h Person类的声明文件 (2)Person.m Person类的实现文件 (3)Dog.h Dog类的声明文件 (4)Dog.m Dog类的实现文件 (5)Main.m 主函数(程序入口)在主函数以及类的实

文件归档、压缩及传输

1.文件归档文件归档,就是把多个文件变成一个归档文件 tar    c                 创建         f                 指定归档文件名称         t                 显示归档文件中的内容         r                 向归档文件中添加文件    --get               取出单个文件    --delete         删除单个文件        x                 取出归档

Linux文件归档压缩

文件归档压缩: 压缩.解压缩命令 压缩格式:gz.bz2.xz.zip.z 压缩算法:算法不同,压缩比也会不同 compress: FILENAME.Z uncompress gz:gzip .gz gzip /PATH/TO/SOMEFILE:压缩完成后会删除原文件 -d /PATH/TO/SOME_COMPRESSFILE.gz:相当于gunzip -#:1-9,指定压缩比,默认为6 gunzip /PATH/TO/SOME_COMPRESSFILE.gz:解压缩完成后也会删除原压缩文件 z

iOS在Xcode6中怎么创建OC category文件

升级Xcode6之后我们发现,本来创建category文件的选项突然不见了,那在在Xcode6中怎么创建OC category文件,其实它还是在,只是Xcode6把他放在了第二步选择了: 点击下一步,我们就可以选择创建category文件了 然后选择如下:比如:给Person类写一个名字为QYMa的分类 ok!这样分类就建好啦! (我都写完了,为什么不让我发-_-#,200字很重要嘛?解决问题才是关键啊!我不想写废话的!是你逼我的!-_-#.今天外面继续是打雷 闪电大暴雨!忽然想起一篇文章名字叫

Swift基础之调用OC语言文件使用步骤

Swift语言中,有很多封装类并没有,如果需要使用到,就需要桥接OC语言中的类,这时候就需要使用桥接头文件,一下是使用的步骤: 创建一个Swift项目Demo,然后新建一个OC语言的文件 如图: 创建一个BgImgView的类,选择对应的Object-C语言,点击Next按钮 会弹出提示框,询问是否需要配置一个桥接头文件,点击创建按钮(第三个) 这个时候会自动生成一个桥接头文件 现在开始在OC文件中添加需要使用的相关代码 .h文件 {    id _targetT;    SEL _selT;}