iOS经典讲解之获取沙盒文件路径写入和读取简单对象
- #import "RootViewController.h"
- @interface RootViewController ()
- @end
- 实现文件:
- @implementation RootViewController
- - (void)viewDidLoad {
- [super viewDidLoad];
- [self path];
- [self writeFile];
- [self readingFile];
- }
- // 打印沙盒中的文件夹路径
- - (void)path
- {
- // 每运行一次 相当于重新安装一次 重新安装就重新分配一个沙盒 所以你每次运行路径都不一样
- //NSDocumentDirectory要打印文件夹地址
- // NSUserDomainMask 搜索范围
- //documents 路径
- // 该文件夹 一般存储用户的一些数据
- NSArray *documentsPathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *document = [documentsPathArr lastObject];
- NSLog(@"%@", document);
- // Caches缓存文件夹路径
- // 该文件夹 一般存储缓存文件
- NSArray *cachesPathArr = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
- NSString *cachesPath = cachesPathArr[0];
- NSLog(@"%@", cachesPath);
- // 打印tmp文件夹
- // 该文件夹 一般存储临时文件
- NSString *tempPath = NSTemporaryDirectory();
- NSLog(@"%@", tempPath);
- // 打印沙盒的主目录路径
- NSLog(@"%@", NSHomeDirectory());
- }
- // 简单对象引入文件
- // 注意如果你写入字典或者数组 那么字典数组中存储的必须是简单对象 无法写入复杂对象
- // 复杂对象
- //自定义的类 比如Person类
- - (void)writeFile
- {
- //简单对象
- // 字符串 字典 数组 data...系统提供的类
- // 写入文件的路径
- // 在documents路径下写入xiaoshuo.txt
- NSString *str = @"第一章 ";
- NSArray *documentsPathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documentsPath = [documentsPathArr lastObject];
- // 拼接要写入文件的路径
- NSString *path = [documentsPath stringByAppendingPathComponent:@"xiaoshuo.txt"]; // stringByAppendingString:@"/xiaoshuo.txt" 也可以
- //atomically 如果YES在你写入的过程中 出现程序的崩溃不影响写入
- [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
- NSLog(@"%@", path);
- // 简单对象写入步骤
- // 1、拼写要写入的路径 (路径一定要拼对)
- // 2、调用写入方法 完事
- // 写入一个数组 shuzu.txt
- // 必须给后缀类型 你不给那 就默认是txt格式的,如果是txt格式里面是xml结构,如果是plist格式里面就是plist结构
- NSString *arrPath = [documentsPath stringByAppendingPathComponent:@"shuzu.plist"];
- NSArray *array = @[@"八戒", @"悟空", @"三藏", @"悟净"];
- // 调用写入方法
- [array writeToFile:arrPath atomically:YES];
- NSLog(@"%@", arrPath);
- // 写入一个字典zidian.plist
- NSString *dicPath = [documentsPath stringByAppendingPathComponent:@"zidian.plist"];
- NSDictionary *dic = @{@"2":@""};
- [dic writeToFile:dicPath atomically:YES];
- NSLog(@"%@", dicPath);
- // data的写入 后缀.da
- NSString *dataPath = [documentsPath stringByAppendingPathComponent:@"data.da"];
- NSString *dataStr = @"你猜我是谁";
- NSData *data = [dataStr dataUsingEncoding:NSUTF8StringEncoding];
- // 写入文件
- [data writeToFile:dataPath atomically:YES];
- NSLog(@"%@", dataPath);
- }
- // 读取写入的文件
- - (void)readingFile
- {
- // 读字符串
- // 获取路径
- NSArray *documentsPathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documentsPath = [documentsPathArr lastObject];
- // 拼接要写入文件的路径
- NSString *path = [documentsPath stringByAppendingPathComponent:@"xiaoshuo.txt"];
- // 从路径中读取字符串
- NSString *str = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
- NSLog(@"%@", str);
- // 读数组文件
- // 获取路径
- NSString *arrPath = [documentsPath stringByAppendingPathComponent:@"shuzu.plist"];
- NSArray *array = [NSArray arrayWithContentsOfFile:arrPath];
- NSLog(@"%@", array);
- // 读取字典
- // 获取路径
- NSString *dicPath = [documentsPath stringByAppendingPathComponent:@"zidian.plist"];
- NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:dicPath];
- NSLog(@"%@", dic);
- //读data
- NSString *dataPath = [documentsPath stringByAppendingPathComponent:@"data.da"];
- // 读取data
- NSData *data = [NSData dataWithContentsOfFile:dataPath];
- // 将data转化成字符串
- NSString *dataStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
- NSLog(@"%@", dataStr);
- }
- @end
相关文章:
Google最新论文:Youtube视频推荐如何做多目标排序
作者 | 深度传送门来源 | 深度传送门(ID:deep_deliver)导读:本文是“深度推荐系统”专栏的第十五篇文章,这个系列将介绍在深度学习的强力驱动下,给推荐系统工业界所带来的最前沿的变化。本文主要介绍下Google在RecSys …

Jmeter 笔记
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器&#…
王贻芳院士:为什么中国要探究中微子实验?
演讲嘉宾 | 王贻芳(中国科学院院士、中科院高能物理研究所所长)整理 | 德状出品 | AI科技大本营(ID:rgznai100)日前,在2019腾讯科学WE大会期间,中国科学院院士、高能物理研究所所长王贻芳分享了中微子与光电…
一个苹果证书供多台电脑开发使用——导出p12文件
摘要 在苹果开发者网站申请的证书,是授权mac设备的开发或者发布的证书,这意味着一个设备对应一个证书,但是99美元账号只允许生成3个发布证书,两个开发证书,这满足不了多mac设备的使用,使用p12文件可以解决这…

FFmpeg中AVDictionary介绍
FFmpeg中的AVDictionary是一个结构体,简单的key/value存储,经常使用AVDictionary设置或读取内部参数,声明如下,具体实现在libavutil模块中的dict.c/h,提供此结构体是为了与libav兼容,但它实现效率低下&…

RocketMQ3.2.2生产者发送消息自动创建Topic队列数无法超过4个
问题现象RocketMQ3.2.2版本,测试时尝试发送消息时自动创建Topic,设置了队列数量为8:producer.setDefaultTopicQueueNums(8);同时设置broker服务器的配置文件broker.properties:defaultTopicQueueNums16但实际创建后从控制台及后台…

iOS各种宏定义
#ifndef MacroDefinition_h #define MacroDefinition_h //************************ 获取设备屏幕尺寸********************************************** //宽度 #define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width //高度 #define SCREENH_HEIGHT [UIScree…

开源库libuuid简介及使用
libuuid是一个开源的用于生成UUID(Universally Unique Identifier,通用唯一标识符)的库,它的源码可从https://sourceforge.net/projects/libuuid/ 下载,最新版本为1.0.3,更新于2013年4月27日,此库仅支持在类Linux下编译…

深度学习会议论文不好找?这个ConfTube网站全都有
BDTC大会官网:https://t.csdnimg.cn/q4TY作者 | 刘畅 出品 | AI科技大本营(ID:rgznai1000)最近跟身边的硕士生、博士生聊天,发现有一个共同话题,大家都想要知道哪款产品能防止掉头发?养发育发已经成了茶余饭…

Java用for循环Map
为什么80%的码农都做不了架构师?>>> 根据JDK5的新特性,用For循环Map,例如循环Map的Key for(String dataKey : paraMap.keySet()) { System.out.println(dataKey ); } 注意的是,paraMap 是怎么样定义的,如果是简单的Map paraMap new …

iOS 应用发布到AppStore流程
iOS开发者,把开发出来的App上传到App Store是必须的。下面就来详细介绍下具体流程。 方法/步骤 1打开苹果开发者中心 打开后点击:Member Center 2如果你的电脑没有保存密码,则会提示你输入开发者帐号和密码,因为我的电脑已经保存了…

FFmpeg中编码类型为rawvideo无须解码直接显示测试代码
在 https://blog.csdn.net/fengbingchun/article/details/93975325 中介绍过通过FFmpeg可以直接获取usb视频流并解码显示的测试代码,当时通过usb获取到的视频流编码类型为AV_CODEC_ID_RAWVIDEO,像素格式为AV_PIX_FMT_YUYV422,其实编码类型为r…

一场高质量的技术盛会怎样炼成?「2019中国大数据技术大会」蓄势待发,还不快上车?...
2019年12月,一场轰动国内产业界、学术界、科研界及投资领域的顶级科技盛会即将拉开帷幕,它涵盖大数据、人工智能、云计算、AIoT、金融科技、智能制造等十几个前沿领域的热门话题。在过去十二年里,这场盛会从最初仅 60 余人参加的技术沙龙到如…

融合应用11.1.8安装,一步一步的引导
融合应用11.1.8安装,一步一步的引导 融合应用11.1.8 安装并不是简单的与电子商务套件11 i / R12安装。 所以我们需要安装划分为许多步骤。 请注意,11.1.8 11.1.7总统发布供应是几乎相同的。 在同一时间的步骤和一些组件11.1.6和11.1.5相比有所不同。 这里我们有实际使用同一个…

FFmpeg中一个线程获取视频流一个线程执行scale测试代码
在https://blog.csdn.net/fengbingchun/article/details/94712986 中介绍过如果usb视频流编码类型为rawvideo则无需进行解码,可直接通过av_read_frame获取视频流然后再通过sws_scale进行像素格式转换,当在高分辨率情况下,有时达不到实时显示&…

医疗影像处理:去除医疗影像中背景的影响2D/3D【numpy-code】| CSDN博文精选
BDTC大会官网:https://t.csdnimg.cn/q4TY作者 | chestnut--来源 | CSDN博客在医疗影像中特别是CT影像,包含大量的背景,在进行器官分割时,首先去除背景对分割的效果有很好的提升。本博客使用Python处理医疗影像并去除背景的影像。使…

iOS APP提交上架最新流程
iOS APP提交上架最新流程 反复提交的过程中对上架流程熟悉了好多,写篇帖子送给同为菜鸟的你,如果里面有很菜的东西,大牛请自动忽略,毕竟这也是还为菜鸟的我的备忘录呢! 首先得描述一下各个证书的定位,作…

Spring mvc Data Redis—Pub/Sub(附Web项目源码)
一、发布和订阅机制 当一个客户端通过 PUBLISH 命令向订阅者发送信息的时候,我们称这个客户端为发布者(publisher)。 而当一个客户端使用 SUBSCRIBE 或者 PSUBSCRIBE 命令接收信息的时候,我们称这个客户端为订阅者(subscriber)。 为了解耦发布者(publish…

iOS分析崩溃日志
前言 iOS分析定位崩溃问题有很多种方式,但是发布到AppStore的应用如果崩溃了,我们该怎么办呢?通常我们都会在系统中接入统计系统,在系统崩溃的时候记录下崩溃日志,下次启动时将日志发送到服务端,比较好的第…

海思3559A上编译FFmpeg源码操作步骤
1. 从https://github.com/FFmpeg/FFmpeg/releases 下载你需要的版本; 2. 因为ffmpeg编译选项较多,为了更方便的了解有哪些选项,可将编译选项写入到一个文本文件configure_help.txt中,执行: ./configure --help > …

不到顶会现场也能听论文讲解?这个视频集合网站值得收藏
BDTC大会官网:https://t.csdnimg.cn/q4TY作者 | 刘畅出品 | AI科技大本营(ID:rgznai1000)最近跟身边的硕士生、博士生聊天,发现有一个共同话题,大家都想要知道哪款产品能防止掉头发?养发育发已经成了茶余饭…

通过cat /proc/cpuinfo看处理器特点
2019独角兽企业重金招聘Python工程师标准>>> 在我的服务器上执行cat /proc/cpuinfo得到如下信息(摘录最后一项,从0-23共24项): processor: 23:超线程技术的虚拟逻辑核第24个 vendor_id: GenuineIntel&#…

2016cocoapods安装流程及使用
一:参考安装流程:http://blog.csdn.NET/showhilllee/article/details/38398119/。 二:我的安装步骤。 1:安装cocoapods需要ruby,先查看ruby环境是不是最新版本。如果不是最新版本,需要先升级到最新版本。在终端输入以下…

FFmpeg中拉取rtsp视频流并缩放显示测试代码
之前在https://blog.csdn.net/fengbingchun/article/details/92198857中给出过仅拉取rtsp视频流的测试代码,这里在此代码的基础上进行扩充,包括设置使用多线程进行解码,使用sws_scale函数进行图像格式转换和缩放,并通过OpenCV进行…

全面分析阿里数据中台,小白也能看懂 | CSDN原力计划
扫码参与CSDN“原力计划”作者 | yuanziok来源 | CSDN原力计划获奖作品数据中台被誉为大数据的下一站,由阿里兴起,核心思想是数据共享,2015年阿里提出“大中台,小前台”的策略。2018 年因为“腾讯数据中台论”,中台再度…

【Stage3D学习笔记续】山寨Starling(八):核心优化(批处理)的实现
批处理是使GPU进行高效绘制的一种技术手段,也是整个渲染流程中最核心的技术,到目前为止我们并没有使用到这种技术手段,下面我们看看我们现在的渲染机制。 先想一想我们最开始是怎么向GPU绘制一幅图像的,可以回头查看Stage3D学习笔…

MBProgressHUD 使用详解
MBProgressHUD是一个显示HUD窗口的第三方类库,用于在执行一些后台任务时,在程序中显示一个表示进度的loading视图和两个可选的文本提示的HUD窗口。我想最多是应用在加载网络数据的时候。其实苹果官方自己有一个带有此功能的类UIProgressHUD,只…

V4L2获取usb视频流测试代码
Video4Linux2(Video for Linux Two, 简称V4L2)是Linux中关于视频设备的驱动框架,为上层访问底层的视频设备提供统一接口。V4L2主要支持三类设备:视频输入输出设备、VBI设备和Radio设备,分别会在/dev目录下产生videoX、vbiX和radioX设备节点&a…

深度学习渐趋冷静,为何图形计算却逆势反涨?
不知不觉,2019 年的进度条已经快撑不住了 ▓▓▓▓▓▓▓▓▓▓▓▓▓░░ 88%。就像这个进度条一样,人工智能的发展也绝不是一蹴而就的事,而是一步一个脚印逐渐发展,最后达成某个目标。近年来,深度学习领域的技术发展…

数字图像处理课设
2019独角兽企业重金招聘Python工程师标准>>> 对于整个窗体的设计,菜单组件(MenuStrip)和工具条(ToolStrip)来添加相应的功能事件当然还有右击鼠标就能弹出相应的属性框,也是使用了叫contextMenuStrip的组件…