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

IOS学习笔记之二十二(文件io)相关推荐

  1. OpenCV学习笔记(五十一)——imge stitching图像拼接stitching OpenCV学习笔记(五十二)——号外:OpenCV 2.4.1 又出来了。。。。。 OpenCV学习笔记(五

    OpenCV学习笔记(五十一)--imge stitching图像拼接stitching stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitch ...

  2. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co

    OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...

  3. OpenCV学习笔记(三十一)——让demo在他人电脑跑起来 OpenCV学习笔记(三十二)——制作静态库的demo,没有dll也能hold住 OpenCV学习笔记(三十三)——用haar特征训练自己

    OpenCV学习笔记(三十一)--让demo在他人电脑跑起来 这一节的内容感觉比较土鳖.这从来就是一个老生常谈的问题.学MFC的时候就知道这个事情了,那时候记得老师强调多次,如果写的demo想在人家那 ...

  4. Slicer学习笔记(六十二)slicer下导出模块接口

    Slicer学习笔记(六十二)slicer下导出模块接口 1. 参考文件实现 1. 参考文件实现 通过配置config_file为每一个生成类添加 Export,并为每个Module生成 Export ...

  5. Slicer学习笔记(四十二)slicer c++源码编译

    Slicer学习笔记(四十二)slicer c++源码编译 1.cmake生成项目 2.编译失败的原因汇总 2.1.下载代码失败 之前在windows下编译slicer,没有做笔记. 后面再次编译还会 ...

  6. 【OS学习笔记】三十二 保护模式九:分页机制对应的汇编代码之---内核代码

    本片文章是以下两篇文章: [OS学习笔记]三十 保护模式九:段页式内存管理机制概述 [OS学习笔记]三十一 保护模式九:页目录.页表和页三者的关系详解 对应的内核汇编代码. ;代码清单16-1;文件名 ...

  7. OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年

    首先还是要感谢箫鸣朋友在我<OpenCV学习笔记(四十)--再谈OpenCV数据结构Mat详解>的留言,告诉我M.at<float>(3, 3)在Debug模式下运行缓慢,推荐 ...

  8. jquery设置宽_JavaScript学习笔记(三十二) jQuery(中)

    jQuery 昨天讲了 jQuery 的基本选择器筛选器和属性操作 今天来说一些 jQuery 别的东西 元素操作 创建一个元素 var div = $(') 内部插入元素 // 向 div 元素中插 ...

  9. Dynamic CRM 2013学习笔记(四十二)流程5 - 实时/同步工作流(Workflow)用法图解...

    实时工作流跟插件一样,也是用事件执行管道来执行,能在pre,post或核心操作中执行.跟插件一样,不能在创建之前和删除之后执行.如果执行过程中有异常发生,会取消并回滚整个操作.实时工作流里所有的活动和 ...

  10. 系统架构师学习笔记_第十二章_连载

    第十二章  系统安全架构设计 12.1  信息系统安全架构的简单描述 信息安全的特征 是为了保证信息的 机密性.完整性.可用性.可控性.不可抵赖性. 以风险策略为基础. 12.1.1  信息安全的现状 ...

最新文章

  1. java继承关键字super_java学习笔记-继承中super关键字
  2. pcie的ack/nak机制
  3. 机器学习高阶认识(一): 机器学习假设与迁移学习
  4. CNN卷积神经网络推导和实现
  5. Codeforces 959 E. Mahmoud and Ehab and the xor-MST 思路:找规律题,时间复杂度O(log(n))
  6. CWnd与HWND的区别与转换
  7. 图机器学习 | 图信号处理、矩阵分解、随机游走和深度学习算法
  8. 陕师大计算机科学学院研究生,陕师大研究生
  9. 使用Python实现简单的随机数字抽奖
  10. Java内存模型—JMM详解
  11. python异步请求aiohttp_利用aiohttp制作异步爬虫
  12. ad转3d视图快捷键_AD详细快捷键按键
  13. oracle算加权平均的函数,EXCEL中用公式算加权平均值
  14. 为什么要处理自然语言? | NLP基础
  15. 3D世界 ORGE SceneManager GetStart
  16. table maker's delimma
  17. KafkaController机制(六):Zookeeper Listener之TopicDeletionManager与DeleteTopicsListener
  18. 【轻松上手postman】入门篇:如果根据接口文档写postman接口用例
  19. ZYNQ裸板:LHB155304-RT篇
  20. Nginx反向代理后无法获取客户端真实IP地址

热门文章

  1. 22504!Windows 11 新预览版发布
  2. Blazor+Dapr+K8s微服务之服务调用
  3. 实现多租户系统的一点思考
  4. .NET团队送给.NET开发人员的云原生学习资源
  5. 知名Node.js组件存在代码注入漏洞
  6. 明天面腾讯,我刷了这71道面试题...
  7. 快来参加学习.NET 挑战赛
  8. 福利 | 全网疯传免费领,一整套算法课程,拿走不谢!
  9. 认证授权方案之JwtBearer认证
  10. 在.net core3.0中使用SignalR实现实时通信