UI 沙盒机制 文件的读写操作

沙盒机制:

数据持久化的本质:将数据读成文件,存储在本地

沙盒机制:沙盒就是系统针对于每个应用程序在本地生成的文件夹(名字随机生成).对于不同的应用程序,不能访问其他应用程序沙盒内的内容.对于该应用内容起到保护作用.

沙盒内的文件夹:

(1)Documents:用来存储长久保存的数据

(2)XXX.app: 应用程序的包,包含应用程序加载所需的所有资源,(readonly 只读,不可修改).平时使用的NSBundle就是该包.

(3)Library:

A: Caches:本地缓存,存储想暂时保存的数据.比如下载的视频,音频,图片都存储在该文件夹下(Videos, Musics, Images).

B: tmp:存储还未下载完的视频, 音频, 当下载完毕之后将文件转移到Caches文件夹下

文件的读写:

文件读写暂时只支持NSString, NSArray, NSDictionary, NSData 以及他们的子类

写入文件:writeToFile:(这是对象调用的方法)

读取文件:每个类自带的能够根据文件路径创建对象的方法:[类名 类WithContentsOfFile:];

字符串:[NSString stringWithContentsOfFile:];

字典:[NSDictionary dictionaryWithOfFile:];

二流进制:[NSData dataWithContentsOfFile:];

(谨记:)对于数组,字典这种容器类来说,内部成员也必须是能够实现文件读写的八个类之一

//获取文件路径

- (NSString *)getFilePath

{

//(1)获取Documents文件夹路径

/**

* 用来获取指定文件夹的路径

*

*  @param NSDocumentDirectory指定的文件夹(是Documents,还是Library等).

*  @param NSUserDomainMask   设置查找的域,
我们自己的文件都是存储在用户域的

*  @param YES                是否使用详细路径(绝对路径)

*

*  @return因为最初该方法是使用于MAC OS的,而对于电脑系统来说,可能会存储在多个用户,所以获取到的路径可能会有多条,所以返回值类型是数组,但是对于iOS下,就只有一个用户,所以数组中就只有一个元素.

*/

NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)firstObject];

//(2)拼接上要存储的文件路径

NSString *newFilePath = [documentsPath stringByAppendingPathComponent:@"Tsummer.txt"];

NSLog(@"%@", newFilePath);

return newFilePath;

}

//写入操作

- (void)writeClick:(UIButton *)writeBtn

{

//1.获取存储的内容

UITextField *tf = (UITextField
*)[self.viewviewWithTag:100];

NSString *content = tf.text;

UITextField *tf1 = (UITextField *)[self.viewviewWithTag:101];

NSString *content1 = tf1.text;

//2.获取到所要存储的文件路径

NSString *newFilePath = [selfgetFilePath];

//3.将内容存储到指定文件路径

//(1)字符串写入本地文件

//    NSError *error = nil;

//    BOOL isSuccess = [content writeToFile:newFilePath atomically:YES encoding:NSUTF8StringEncoding error:&error];

//    NSLog(@"%d", isSuccess);

//(2)数组写入本地文件

//    NSArray *arr = @[content, content1];

//    BOOL isSuccess = [arr writeToFile:newFilePath atomically:YES];

//    NSLog(@"%d", isSuccess);

//(3)字典写入本地文件

NSDictionary *dic = @{@"tf1":content,@"tf2":content1};

BOOL isSuccess = [dic writeToFile:newFilePath
atomically:YES];

NSLog(@"%d", isSuccess);

}

//读操作

- (void)readClick:(UIButton *)readBtn

{

//每次写入都会将之前的内容覆盖掉.

//如果想保留之前的数据,需要先将之前的数据读出,然后和将要存储的数据拼接在一起,一块写入.

NSString *newFilePath = [selfgetFilePath];

//字符串从本地文件读取

//    NSString *content = [NSString stringWithContentsOfFile:newFilePath encoding:NSUTF8StringEncoding error:nil];

//(2)数组从本地文件读取

//    NSArray *arr = [NSArray arrayWithContentsOfFile:newFilePath];

//(3)字典从本地文件读取

NSDictionary *dic = [NSDictionarydictionaryWithContentsOfFile:newFilePath];

UITextField *tf = (UITextField *)[self.viewviewWithTag:100];

tf.text = dic[@"tf1"];

UITextField *tf1 = (UITextField *)[self.viewviewWithTag:101];

tf1.text = dic[@"tf2"];

}

时间: 2024-08-24 05:38:29

UI 沙盒机制 文件的读写操作的相关文章

IOS 学习之 iOS沙盒(sandbox) 介绍 沙盒机制 文件操作(一)

1.iOS沙盒机制 iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. 1.1.每个应用程序都有自己的存储空间 1.2.应用程序不能翻过自己的围墙去访问别的存储空间的内容 1.3.应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行.     通过这张图只能从表层上理解sandbox是一种安全体系,应用程序的所有操作都要通过这个体系来执行,其中核心内容是

IOS开发-UI学习-沙盒机制&文件操作

?苹果为软件的运行提供了一个沙盒机制 每个沙盒含有3个文件夹:Documents, Library 和 tmp.因为应用的沙盒机制,应用只能在几个目录下读写文件 ?Documents:苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录 ?Library:存储程序的默认设置或其它状态信息: ?Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除: ?tmp:提供一个即时创建临时文件的地方, 这三

【学习ios之路:UI系列】iOS沙盒机制,文件读取,归档与反归档

1.IOS中的沙盒机制 IOS中的沙盒机制是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容.所有的非代码文件都保存在这个地方,比如图片.声音.属性列表和文本文件等. 特点: 1.每个应用程序都在自己的沙盒内 2.不能随意跨越自己的沙盒去访问别的应用程序沙盒的内容 3.应用程序向外请求或接收数据都需要经过权限认证 每个沙盒含有3个文件夹:Documents, Library 和 tmp.Library包含Caches.Preferences目录.如下图

IOS-沙盒机制(二 文件读写)

一 目录说明 如下图所示,一个沙盒中典型存在下面的目录和文件 各个目录及文件说明: 1.Documents      您应该将所有的应用程序数据文件写入到这个目录下,这个目录用于存储用户数据或其它应该定期备份的信息. 2.AppName.app   这是应用程序的程序包目录,包含应用程序的本身.由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动. 3.Library              这个目录下有两个子目录:Caches 和 Prefer

iOS开发>学无止境 - 沙盒和文件操作(汇总)

关于沙盒和文件操作的文章写了几篇,在写的过程中加深了自己的记忆.今天来做一下汇总,算是对知识点的梳理. 文章梳理 1 iOS开发之沙盒机制(SandBox) 这是一篇关于沙盒的基础知识教程.简述沙盒的作用,对Documents.Library.tmp之间的区别做了介绍.通过两种方法打开沙盒,查看其中的内容. 2 iOS开发之获取沙盒路径 沙盒里的文件夹包括Documents.Library.tmp.文章介绍了如何获取Documents.Library.Caches.tmp的路径. 3 如何查看真

iOS开发之沙盒和文件操作(汇总)

关于沙盒和文件操作的文章写了几篇,在写的过程中加深了自己的记忆.今天来做一下汇总,算是对知识点的梳理. 文章梳理 1 iOS开发之沙盒机制(SandBox) 这是一篇关于沙盒的基础知识教程.简述沙盒的作用,对Documents.Library.tmp之间的区别做了介绍.通过两种方法打开沙盒,查看其中的内容. 2 iOS开发之获取沙盒路径 沙盒里的文件夹包括Documents.Library.tmp.文章介绍了如何获取Documents.Library.Caches.tmp的路径. 3 如何查看真

IOS-沙盒机制(一 简述)

一 IOS沙盒机制 出于安全的目的,应用程序只能将自己的数据和偏好设置写入到几个特定的位置上.当应用程序被安装到设备上时,系统会为其创建一个家目录,这个家目录就是应用程序的沙盒.所以的文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等.(For security reasons, iOS places each app (including its preferences and data) in a sandbox at install time. A sandbox is a

iOS之沙盒机制和如何获取沙盒路径

iOS APP可以在自己的沙盒里读写文件,但是,不可以访问其他APP的沙盒.每一个APP都是一个信息孤岛,相互是不可以进行通信的,唯独可以通过URL Scheme.沙盒里面的文件可以是照片.声音文件.文本.属性列表等. 沙盒机制简介 沙盒简述: 每一个APP都有一个存储空间,就是沙盒. APP之间不能相互通信. 沙盒根目录结构:Documents.Library.temp. 简述一下Documents.Library.temp的区别: Documents:用于存储用户数据,iTunes备份和恢复

iOS沙盒机制介绍

一.沙盒机制 沙盒的概念:沙盒是每一个iOS应用程序都会自动创建的一个文件系统目录(文件夹),而且沙盒还具有独立.封闭.安全的特点. 沙盒机制 iOS中的沙盒不仅仅是一个文件目录,TA其实更是一种安全体系 TA规定了应用程序只能在为该应用程序创建的文件夹(也就是沙盒)内访问文件,不可以访问其他沙盒内的内容(iOS已经部分开放访问) 所有的非代码文件都保存在沙盒中,图片.音频.视频.属性列表(plist).sqlite数据库以及文本文件等. 沙盒机制的特点 每个应用程序的活动范围都限定在自己的沙盒