iOS学习 plist读取和写入文件
干iOS开发时间。后经常用来plist文件, 那plist什么文件是它? 它的全称是:Property List。属性列表文件。它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist 。因此通常被称为 plist文件。
文件是xml格式的。
Plist文件通经常使用于储存用户设置,也能够用于存储捆绑的信息
我们创建一个项目来学习plist文件的读写。
1、创建项目Plistdemo
项目创建之后能够找到项目相应的plist文件,打开例如以下图所看到的:

在编辑器中显示相似与表格的形式,能够在plist上右键,用源代码方式打开。就能看到plist文件的xml格式了。
2、创建plist文件。
按command +N快捷键创建,或者File —> New —> New File。选择Mac OS X下的Property List


创建plist文件名称为plistdemo。
打开plistdemo文件,在空白出右键,右键选择Add row 加入数据,加入成功一条数据后,在这条数据上右键看到 value Type选择Dictionary。点加号加入这个Dictionary下的数据

加入完key之后在后面加入Value的值。加入手机号和年龄
创建完毕之后用source code查看到plist文件是这种:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>jack</key>
<dict>
<key>phone_num</key>
<string>13801111111</string>
<key>age</key>
<string>22</string>
</dict>
<key>tom</key>
<dict>
<key>phone_num</key>
<string>13901111111</string>
<key>age</key>
<string>36</string>
</dict>
</dict>
</plist>
3、读取plist文件的数据
- (void)viewDidLoad
{
[super viewDidLoad];
//读取plist NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"plistdemo" ofType:@"plist"];
NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];
NSLog(@"%@", data);//直接打印数据。
}
PlistDemo[6822:f803] {
jack = {
age = 22;
"phone_num" = 13801111111;
};
tom = {
age = 36;
"phone_num" = 13901111111;
};
}
这样就把数据读取出来了。
4、创建和写入plist文件
在开发过程中。有时候须要把程序的一些配置保存下来。或者游戏数据等等。
这时候须要写入Plist数据。
写入的plist文件会生成在相应程序的沙盒文件夹里。
接着上面读取plist数据的代码,加入了写入数据的代码。
- (void)viewDidLoad
{
[super viewDidLoad];
//读取plist NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"plistdemo" ofType:@"plist"];
NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];
NSLog(@"%@", data); //加入一项内容
[data setObject:@"add some content" forKey:@"c_key"]; //获取应用程序沙盒的Documents文件夹
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *plistPath1 = [paths objectAtIndex:0]; //得到完整的文件名称
NSString *filename=[plistPath1 stringByAppendingPathComponent:@"test.plist"];
//输入写入
[data writeToFile:filename atomically:YES]; //那怎么证明我的数据写入了呢?读出来看看
NSMutableDictionary *data1 = [[NSMutableDictionary alloc] initWithContentsOfFile:filename];
NSLog(@"%@", data1); // Do any additional setup after loading the view, typically from a nib.
}
在获取到自己手工创建的plistdemo.plist数据后,在这些数据后面加了一项内容。证明输入写入了。
怎么证明加入的内容写入了呢?以下是打印结果:

代码地址:https://github.com/schelling/YcDemo/tree/master/PlistDemo
著作权声明:本文由http://blog.csdn.net/totogo2010/原创,欢迎转载分享。
请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!
iOS学习 plist读取和写入文件的更多相关文章
- 读取和写入 文件 (NSFIleManger 与 NSFileHandle)
读取和写入 文件 //传递文件路径方法 -(id)initPath:(NSString *)srcPath targetPath:(NSString *)targetPath { self = [su ...
- C++按行读取和写入文件
按行读取: 假设有一个文本文件,如下所示: 1 2 32 3 43 4 55 6 77 8 9 文件名为split.txt 目的:按照行读取数据,并一个个的显示出来. 代码如下: #include & ...
- File类的特点?如何创建File类对象?Java中如何操作文件内容,什么是Io流Io流如何读取和写入文件?字节缓冲流使用原则?
重难点提示 学习目标 1.能够了解File类的特点(存在的意义,构造方法,常见方法) 2.能够了解什么是IO流以及分类(IO流的概述以及分类) 3.能够掌握字节输出流的使用(继承体系结构介绍以及常见的 ...
- iOS案例:读取指定txt文件,并把文件中的内容输出出来
用到的是NSString中的initWithContentsOfFile: encoding方法 // // main.m // 读取指定文件并输出内容 // // Created by Apple ...
- 【转】MFC中用CFile读取和写入文件2
原文网址:http://blog.sina.com.cn/s/blog_623a7fa40100hh1u.html CFile提供了一些常用的操作函数,如表1-2所示. 表1-2 CFile操作函数 ...
- 在线程中进行读取并写入文件和wenjia
新人求(胸)罩!!! import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException ...
- C# Byte[]数组读取和写入文件
这个项目我用的是asp.net构建的,代码如下 protected void ByteToString_Click(object sender, EventArgs e) { string conte ...
- Redis 中文入库成功,读取数据写入文件乱码问题
近期须要用到redis ,可是在编码这个问题上,纠结了非常久. 需求 :每天一个进程将中文文件入库到redis中(不定时更新) ,另外几个进程读取redis中的信息 ,并处理数据结果.使 ...
- C#读取和写入文件
一.读取文件 如果你要读取的文件内容不是很多, 可以使用 File.ReadAllText(FilePath) 或指定编码方式 File.ReadAllText(FilePath, Encoding) ...
随机推荐
- sql server从一个数据库复制一个表到另一个数据库的方法
分两步进行: 第一步,复制表结构: 在表上面右击——>编写表脚本为:——>Create到——>新查询编辑器窗口,你也可以保存为sql文件, 将新查询编辑器窗口最上面的一句话USE [ ...
- ajax j跨域请求sonp
需求 遇到的问题 解决方案 需求 如今,该项目需要获得数据访问外部链接.它是跨域.使用ajax 直提示: 遇到的问题 1. 怎样使用ajax 跨域请求数据 2. 能不能post请求 解决的方法 经过网 ...
- 树莓派安装 dig命令
apt-get install dnsutils
- T-SQL基础(4) - 子查询
简单子查询select * from (select custid, companyname from Sales.Customers where country = N'USA') as USACu ...
- windows下使用lighttpd+php(fastcgi)+mysql
一.windows下编译配置执行lighttpd 1.下载并安装cygwin. 2.下载lighttpd源码并解压3.在cygwin环境下进入lighttpd的解压文件夹后,执行: 1> ./c ...
- udacity android 学习笔记: lesson 4 part b
udacity android 学习笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...
- 开源一个简单的c++软光栅渲染器
本文由zhangbaochong原创,转载请注明出处http://www.cnblogs.com/zhangbaochong/p/5751111.html 由于开学就大四面临找工作了,为了整理下项目, ...
- effective c++ 条款3 use const whereever you can
1 const 传达的意思应该是这个变量是常量不能更改 2 const 在 * 左边表示数据是const,在右边表示指针是const // char greeting[] = "hello& ...
- Android Splash界面支持用户点击 直接进入主界面
转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/23613403 现在大部分APP都有Splash界面,下面列一下Splash页面的 ...
- 乐在其中设计模式(C#) - 策略模式(Strategy Pattern)
原文:乐在其中设计模式(C#) - 策略模式(Strategy Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 策略模式(Strategy Pattern) 作者:webabc ...