1.什么是一个文件系统?

IOS每个应用程序都有自己的文件系统。并且有一个相应的接入,一般分

~/Documents/

~/tmp/

~/Library/Caches/

~/Library/Preferences/-------键值对,不用关心文件路径。

其路径的获取方式为

<span style="color:#999999;">{
//获取主文件夹
NSString *path=NSHomeDirectory();
NSString *docPath=[path stringByAppendingPathComponent:@"Documents"];
NSLog(@"%@",docPath);
//获取文件文件夹
NSArray *DocumentPath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSAllDomainsMask, YES);
// NSLog(@"%@",DocumentPath[0]);
//获取缓存文件夹
NSArray *cachePath=NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSAllDomainsMask, YES);
// NSLog(@"%@",cachePath[0]);
//获取暂时文件夹
NSString *temp=NSTemporaryDirectory();
// NSLog(@"%@",temp);
}</span>

Plist文件仅仅能存储NSString NSNumber NSData NSArray NSDictionary的内容,其文件存储为xml格式

NSArray存储到Documents中:

    NSArray *arr=@[@"name",@"age",@"height"];
NSString *path=NSHomeDirectory();
NSString *docPath=[path stringByAppendingPathComponent:@"Documents"];
NSString *filepath=[docPath stringByAppendingPathComponent:@"/aa.plist"];
//把array存储到plist文件里
[arr writeToFile:filepath atomically:YES];
//从文件路径读取为array
NSArray *arr2=[NSArray arrayWithContentsOfFile:filepath];

NSDictionary存储到Cache中:

NSDictionary *dic=@{@"name":@"lean",@"age":@24,@"height":@172 };
NSArray *dicArr=NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSAllDomainsMask, YES);
NSLog(@"%@",dicArr[0]);
NSString *dirPath=dicArr[0];
NSString *filePath=[dirPath stringByAppendingPathComponent:@"dic.plist"];
//把Dictionary存储到plist文件里
[dic writeToFile:filePath atomically:YES];
//从文件路径读取为Dictionary
NSDictionary *dic2=[NSDictionary dictionaryWithContentsOfFile:filePath ];

NSData读取图片:

//读写图片吧能直接存储 仅仅能通过NSData来存储。

//下面样例为从UIImageView中存储文件并在还有一个控件中读取显示
NSArray *arr=NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSAllDomainsMask, YES);
NSLog(@"%@",arr[0]);
NSString *cachePath=arr[0];
NSString *filePath=[cachePath stringByAppendingPathComponent:@"image.plist"];
UIImage *image=[self.a image];
NSData *data=UIImageJPEGRepresentation(image,1);
[data writeToFile:filePath atomically:YES]; NSData *data2=[NSData dataWithContentsOfFile:filePath];
UIImage *image2=[UIImage imageWithData:data2 ];
self.b.image=image2;

版权声明:本文博主原创文章,博客,未经同意不得转载。

IOS-Plist文件存储(1)的更多相关文章

  1. iOS Plist 文件的 增 删 改

    一:Plist 文件的创建 Plist 文件作为我们IOS开发的一种数据存储文件,还是经常会用到的.在看<X-code江湖录>的时候,看到了这一点.自己就写了一下,把写的东西分享出来!先看 ...

  2. iOS plist文件的读写

    原帖:http://blog.csdn.net/totogo2010/article/details/7634185 在做iOS开发时,经常用到到plist文件,  那plist文件是什么呢? 它全名 ...

  3. iOS,plist文件、pct文件,工程设置

    1.使用pch文件 2.在info.plist中配置URL Schemes 3.plist配置拍照界面,复制,粘贴等菜单的显示语言 显示中文 4.使用非ARC库/ARC库 5.链接选项-Objc &a ...

  4. IOS plist文件

    转自:http://www.cnblogs.com/geraldzhang/archive/2011/08/24/2152121.html 在Mac OS X 的Cocoa ,NeXTSTEP 和GN ...

  5. iOS Plist文件,增删改查

    今天早上,9点开始弄Plist,然后一直写,一直写(中午取出40分钟吃饭时间),写到1点,写完了,交给头,头说,不是这个意思.我是每个用户创建了一个文件夹,在这个用户的文件夹里面,分别根据应用创建了文 ...

  6. Plist文件存储

    一.Plilst存储简介 (1)只能储存NSData.NSNumber.NSDictionary.NSString.NSDate.NSArray.BOOL等数据类型,如果需要存储其他NSObject类 ...

  7. ios大文件存储

    I am using Erica Sadun's method of Asynchronous Downloads (link here for the project file: download) ...

  8. 转载 -- iOS数据持久化存储

    作者:@翁呀伟呀 授权本站转载 概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方 ...

  9. iOS学习——iOS常用的存储方式

    不管是在iOS还是Android开发过程中,我们都经常性地需要存储一些状态和数据,比如用户对于App的相关设置.需要在本地缓存的数据等等.根据要存储的的数据的大小.存储性质以及存储类型,在iOS和An ...

  10. iOS开发——数据持久化&本地数据的存储(使用NSCoder将对象保存到.plist文件)

    本地数据的存储(使用NSCoder将对象保存到.plist文件)   下面通过一个例子将联系人数据保存到沙盒的“documents”目录中.(联系人是一个数组集合,内部为自定义对象).   功能如下: ...

随机推荐

  1. registerWithTouchDispatcher()函数的使用

    registerWithTouchDispatcher()函数的使用 registerWithTouchDispatcher()函数主要用于注册Touch事件. 当我们使用this->setTo ...

  2. 泛型Binary Search Tree实现,And和STL map比较的经营业绩

    问题叙述性说明: 1.binary search tree它是一种二进制树的.对于key值.比当前节点左孩子少大于右子. 2.binary search tree不是自平衡树.所以,当插入数据不是非常 ...

  3. Leet code —Jump Game

    问题叙述性说明: Given an array of non-negative integers, you are initially positioned at the first index of ...

  4. 给节点设置tag【从零開始cocos3.0final 】

    在cocos中通过tag来管理节点是非经常常使用的:以下介绍一个关于在cocos中使用tag的实例: typedef enum{ tag1 }Tag; 这里能够使用枚举类型,来为多个节点设置tag: ...

  5. Duanxx的C++学习: const指针具体解释

    Const指的是一个编译时的常量. keywordconst使得代码能够确定一个变量能否够被改动. 使用了const后,能够防止对变量或者指针的改动:更重要的是,const的引用能够防止对所引用的对象 ...

  6. Cocos2d-x3.0 lua捆绑C++分类

    我知道这个纪录Lua结合整个过程. 原文地址:http://blog.csdn.net/qqmcy/article/details/26099859 准备工作: 1.创一个一个Lua的2dxproje ...

  7. GCD code block

    在这里积累一些片段,由于备忘录. + (DRClass *)sharedDR{ //创建小黑.正常ap模式仅仅有一个小黑,so static DRClass *aDR = nil; static di ...

  8. android对app代码混淆

    接到新任务.现有项目的代码混淆.在此之前混淆了一些理解,但还不够具体和全面,我知道有些东西混起来相当棘手. 但幸运的是,现在这个项目是不是太复杂(对于这有些混乱).提前完成--这是总结. 第一部分 介 ...

  9. Codeforces Round #223 (Div. 2)--A. Sereja and Dima

    Sereja and Dima time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  10. 文件翻译002片:Process Monitor帮助文档(Part 2)

    [筛选亮点] Process Monitor提供了一些方式来配置筛选器和高亮显示.         筛选器的包括与排除 您能够在筛选器中指定事件的属性,这样就能够令Process Monitor仅显示 ...