IOS学习笔记之二十二(文件io)

1NSDataNSMutableData和NSURL

NSData和NSMutableData表示oc的数据缓冲区

作用:

1)、对数据读取NSData

2)、输出NSData的数据

 

NSURL可以读取网络数据

 

 

2MSFileManager管理文件和目录

作用:创建文件、删除文件、复制文件、移动文件

 

 

 

 

3、NSFileHandle处理文件io

我们可以用NSFileHandle写入数据到文件里面去、从文件里面读取数据、、

 

 

 

4、测试Demo

int main(int argc, char * argv[]) {@autoreleasepool {NSLog(@"当前用户名为:%@", NSUserName());NSLog(@"当前用户名为:%@", NSFullUserName());/**NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://www.baidu.com"]];NSLog(@"%ld", [data length]);char buff[200];[data getBytes:buff range:NSMakeRange(0, 20)];NSLog(@"%s", buff);//NSData to UTF-8 StringNSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];NSLog(@"========");NSLog(@"%@", str);**/
//        NSString *documentsPath =[self getDocumentsPath];//        rwxr-xr-x  3 ls  access_bpf    96B Jul 20 21:47 Documents
//        drwxr-xr-x  5 ls  access_bpf   160B Jul 20 20:45 Library
//        drwxr-xr-x  2 ls  access_bpf    64B Jul  5 16:24 SystemData
//        drwxr-xr-x  2 ls  access_bpf    64B Jul  5 16:24 tmp//获取沙盒根路径NSString *homePath = NSHomeDirectory();NSLog(@"home Paht is:%@", homePath);//获取 tmp目录NSString *tmpPath = NSTemporaryDirectory();NSLog(@"tmpPath is: %@", tmpPath);//获取Documents路径NSArray *docPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *path = [docPaths objectAtIndex:0];NSLog(@"document path:%@", path);NSFileManager *fileManager = [NSFileManager defaultManager];//创建文件夹NSString *dir = @"dir";NSString *dirPath = [path stringByAppendingPathComponent:dir];BOOL result = [fileManager createDirectoryAtPath:dirPath withIntermediateDirectories:YES attributes:nil error:nil];if (result){NSLog(@"make dir success");}else{NSLog(@"make dir fail");}//在document目录下面创建chenyu.txt文件,然后内容为hello, I am testing NSFileManager, my name is chenyuNSString *chenyuPath = [path stringByAppendingPathComponent:@"chenyu.txt"];NSString *content = @"hello, I am testing NSFileManager, my name is chenyu";BOOL isSuccess = [fileManager createFileAtPath:chenyuPath contents:[content dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];if (isSuccess) {NSLog(@"make chenyu.txt success");} else {NSLog(@"make chenyu.txt fail");}//读取chenyu.txt文件的内容NSString *value = [NSString stringWithContentsOfFile:chenyuPath encoding:NSUTF8StringEncoding error:nil];NSLog(@"chenyu.txt value is:%@", value);//新建chenyu1.txt 文件NSString *chenyuPath1 = [path stringByAppendingPathComponent:@"chenyu1.txt"];NSString *content1 = @"hello, I am testing NSFileManager, my name is chenyu1";BOOL result1 = [fileManager createFileAtPath:chenyuPath1 contents:[content1 dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];if (result1) {NSLog(@"make chenyu1.txt success");} else {NSLog(@"make chenyu1.txt fail");}//..../Data/Application/91D24910-B3CB-470C-9C62-D54E2815DF4E/Documents/
//        -rw-r--r--  1 ls  access_bpf    52B Jul 20 23:18 chenyu.txt
//        -rw-r--r--  1 ls  access_bpf    53B Jul 20 23:18 chenyu1.txt
//        drwxr-xr-x  2 ls  access_bpf    64B Jul 20 23:08 dir
//        -rw-r--r--  1 ls  access_bpf    33B Jul 20 22:12 iOS.txt//删除chenyu1.txt文件BOOL result2 = [fileManager removeItemAtPath:chenyuPath1 error:nil];if (result2) {NSLog(@"delete chenyu1.txt success");} else {NSLog(@"delete chenyu1.txt fail");}
//        -rw-r--r--  1 ls  access_bpf    52B Jul 20 23:23 chenyu.txt
//        drwxr-xr-x  2 ls  access_bpf    64B Jul 20 23:08 dir
//        -rw-r--r--  1 ls  access_bpf    33B Jul 20 22:12 iOS.txt//新建chenyu2.txt 文件NSString *chenyuPath2 = [path stringByAppendingPathComponent:@"chenyu2.txt"];
//        NSString *content2 = @"hello, I am testing NSFileManager, my name is chenyu2";BOOL res = [fileManager createFileAtPath:chenyuPath2 contents:nil attributes:nil];if (res) {NSLog(@"make chenyu2.txt success");} else {NSLog(@"make chenyu2.txt fail");}//NSFileHandle写数据到文件NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:chenyuPath2];[handle writeData:[@"this is useing NSHandle write data to chenyu2.txt" dataUsingEncoding:NSUTF8StringEncoding]];//NSFileHandle读取文件的内容NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:chenyuPath2];NSData *data = [readHandle readDataToEndOfFile];NSString *ss = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];NSLog(@"read data is:%@", ss);//运行结果目录下的文件
//        rw-r--r--  1 ls  access_bpf    52B Jul 20 23:33 chenyu.txt
//        -rw-r--r--  1 ls  access_bpf    49B Jul 20 23:33 chenyu2.txt
//        drwxr-xr-x  2 ls  access_bpf    64B Jul 20 23:08 dir
//        -rw-r--r--  1 ls  access_bpf    33B Jul 20 22:12 iOS.txt// 用vim打开chenyu2.txt内容如下
//        this is useing NSHandle write data to chenyu2.txt}
}

上面部分部分//是在终端输入ll命令后打印的信息

 

 

 

 

5、运行结果

2018-07-21 21:22:02.771753+0800 cyTest[31783:15710817] 当前用户名为:
2018-07-21 21:22:02.774191+0800 cyTest[31783:15710817] 当前用户名为:
2018-07-21 21:22:02.774973+0800 cyTest[31783:15710817] home Paht is:/Users/ls/Library/Developer/CoreSimulator/Devices/3FF9B833-FAF8-4C30-A855-3D40A4EAE8A6/data/Containers/Data/Application/BE126DC7-C827-4BD0-8BFC-A517ADC66E6C
2018-07-21 21:22:02.775214+0800 cyTest[31783:15710817] tmpPath is: /Users/ls/Library/Developer/CoreSimulator/Devices/3FF9B833-FAF8-4C30-A855-3D40A4EAE8A6/data/Containers/Data/Application/BE126DC7-C827-4BD0-8BFC-A517ADC66E6C/tmp/
2018-07-21 21:22:02.775790+0800 cyTest[31783:15710817] document path:/Users/ls/Library/Developer/CoreSimulator/Devices/3FF9B833-FAF8-4C30-A855-3D40A4EAE8A6/data/Containers/Data/Application/BE126DC7-C827-4BD0-8BFC-A517ADC66E6C/Documents
2018-07-21 21:22:02.776600+0800 cyTest[31783:15710817] make dir success
2018-07-21 21:22:02.779185+0800 cyTest[31783:15710817] make chenyu.txt success
2018-07-21 21:22:02.780033+0800 cyTest[31783:15710817] chenyu.txt value is:hello, I am testing NSFileManager, my name is chenyu
2018-07-21 21:22:02.782365+0800 cyTest[31783:15710817] make chenyu1.txt success
2018-07-21 21:22:02.784235+0800 cyTest[31783:15710817] delete chenyu1.txt success
2018-07-21 21:22:02.785728+0800 cyTest[31783:15710817] make chenyu2.txt success
2018-07-21 21:22:02.786920+0800 cyTest[31783:15710817] read data is:this is useing NSHandle write data to chenyu2.txt

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络的网络层功能在内完成,计算机网络习题及答案

第一章:1、市话网在数据传输期间,在源节点与目的节点之间有一条利用中间节点构成的物理连接线路。这种市话网采用技术。(B )A、报文交换B、电路交换C、分组交换D、数据交换2、一座大楼内的一个计算机网络系统,属于( B )A、PANB、LANC、MAND、…

冯巩经典语录

1、姑娘们啊!哪有那麽多白马啊?找个驴凑合得了,别等到有一天驴都被抢没了,剩一堆骡子... 2、所谓美女,三分长相七分打扮、所谓气质,三分才气七分装蒜、所谓温柔,三分忍让七分压抑。 3、下辇子要…

IOS清理缓存的几种方法

IOS清理缓存的几种方法, - (long long) fileSizeAtPath:(NSString*) filePath{NSFileManager* manager [NSFileManager defaultManager];if ([manager fileExistsAtPath:filePath]){return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];}retur…

【C#/.NET】不用AutoMapper,我用啥呢?

微信公众号:趣编程ACE关注可了解更多的.NET日常实战开发技巧。如需源码请后台留言源码;**[如果觉得对您有帮助,欢迎关注]TinyMapper简介本文来自社区群粉丝投稿TinyMapper是一个.NET平台下的一个轻量级对象映射工具,号称是.Net平台下最快的对…

大数据算法与分析技术国家工程实验室将建设

国家发展改革委近日正式下发通知,同意由西安交通大学作为承担单位,国家电网公司全球能源互联网研究院作为联合共建单位,筹建“大数据算法与分析技术国家工程实验室”。 国网信通部落实公司党组关于推进大数据的要求,组织联研院等单…

HBase键值分片的简单运用

1.基本原理介绍 HBase的存储是通过行键建立索引进行存储的,而且HBase只支持一级索引,因此只要通过行键才能很快的找到需要的数据。HBase是一个分布式的系统,HBase通过行键的分片,把不同的数据存储在不同的主机上。1).顺序分片依据…

我要3万取款机怎么取_7万的新宝骏RS-3怎么样?用车三个月后,车主说出了实话...

小型SUV领域,作为目前SUV市场之中竞争最激烈的细分领域之一,已经成为众多车企的必争之地。而正因如此,小型SUV市场所具有的车型非常的丰富,且其中更是一点也不缺爆款车型,正如在去年底刚上市的一款小型SUV——新宝骏RS…

大一python题库刷题训练_python实现合工大试题库自动刷题

1 #coding utf-8 2 importre3 importrequests4 importxlrd5 6 save_url "http://tkkc.hfut.edu.cn/student/exam/manageExam.do?1479131327464&methodsaveAnswer" 7 #index用于提示题目序号 8 index 1 9 headers {"User-Agent": "Mozilla/5.0…

MODIS数据说明

MODIS目前主要存在于两颗卫星上:TERRA和AQUA。TERRA卫星每日地方时上午10:30时过境,因此也把它称作地球观测第一颗上午星(EOS-AM1)。AQUA每日地方时下午过境,因此称作地球观测第一颗下午星(EOS-PM1)。两颗星相互配合,每1-2天可重复…

IOS学习笔记二十三对象归档(NSKeyedArchiver、NSKeyedUnArchiver、NSCodeing)

1、NSKeyedArchiver、NSKeyedUnArchiver 1)、archiveRootObject:toFile 归档对象到这个路径文件 2)、unarchiveObjectWithFile:从这个路径文件把对象进行恢复 对象归档这里我们可以理解Android里面的序列化,就是把对象保存到文件持久化&am…

.NET 为大型应用接入 ApplicationStartupManager 启动流程框架

对于大型的应用软件,特别是客户端应用软件,应用启动过程中,需要执行大量的逻辑,包括各个模块的初始化和注册等等逻辑。大型应用软件的启动过程都是非常复杂的,而客户端应用软件是对应用的启动性能有所要求的&#xff0…

6-子查询理解

单行子查询 1.查询工资比200号员工工资高的员工 分析: 比200号员工工资高,首先需要知道的是200号员工的工资,可以通过sql语句 SELECT SALARY FROM HR.EMPLOYEES WHERE EMPLOYEE_ID200;得到 然后需要的是写一条SQL语句:查询工资大于?的数据 SELECT * FROM HR.EMPLOY…

计算机文化教程实验基础知识,《计算机文化基础上机实验教程》孙家启、黄晓梅、刘奎 著_孔网...

《计算机文化基础上机实验教程》是安徽省高等学校“十一五”规划教材——《计算机文化基础教程》的配套实验教材。本教程共安排了19个实验,内容包括计算机基础知识(1个实验)、windows2000中文操作系统(3个实验)、中文文字处理软件Word2000(5个实验)、中文电子表格处…

思科为其核心网络业务增加了订阅服务

据国外媒体报道,思科系统公司的核心网络业务于周二开始进军订阅服务市场,其向大型企业宣布了一系列新的安全和自动化工具。 这个新的“直观网络”代表了思科如何从其旗舰业务中获得收入的重大变化。San Jose公司一直依赖于网络设备的销售,这些…

fpga map测试_一种基于SELECTMAP的可配置且高速的FPGA配置电路及实现方法与流程

本发明属于计算机工程领域,与SoC密切相关。具体涉及一种FPGA配置电路及实现方法。背景技术:随着大数据的发展,计算能力的提升,人工智能近两年迎来了新一轮的爆发。2016年谷歌AlphaGo赢得了围棋大战后,人工智能在产业界…

超全局变量数组get post requerst resver的使用规则

超全局变量数组的概念不同于全局变量,这里我主要说的是用来接收信息用的。其实在以往已经大量使用了首先:get数组,速度较好,但是相对不是很安全。post数组,可以接收大的数据量,较安全,最常用。r…

遥感RS植被指数大全整理

本文整理了遥感中的常见指数及计算方法:植被指数、归一化植被指数、比值植被指数、差值植被指数、土壤调节植被指数、变换的土壤调节植被指数、修整的土壤调节植被指数、正交植被指数、绿度植被指数。 目录 一、VI - Vegetation Index - 植被指数 二、NDVI - Normalized Dif…

if函数python_pythonif函数

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python的内置的函数round() a 1.12586 #保留小数的函数,四舍五入,参数为保留小数点后的位数 pr…

IOS学习笔记二十四(NSData归档多个对象和归档对象实现深复制)

1、NSData归档多个对象 一、之前我写的学习笔记都是归档一个对象,如果需要归档多个对象我们需要借助NSData 二、步骤 1)、NSMutableData作为参数,构建 NSKeyedArchiver对象 2)、调用NSKeyedArchiver的encodeXXX 3)、调用NSKeyed…

Android渠道包自动化验证

随着产品发布越来越快,渠道包越来越多,渠道包自动化验证重要性逐渐凸显出来,需要将大把的人力从中解放出来,且避免人工失误造成的验证不完全;最近客户端产品尝试使用渠道包自动化测试的方法,这里说说我们目…