IOS开发-文件管理(二)

五、Plist文件

String方式添加              

NSString *path = [NSHomeDirectory( )  stringByAppendingPathComponent:@"Array.plist"];

NSString *content = @"abcd";

[contect writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];

Array方式添加        

NSString *path = [NSHomeDirectory( )  stringByAppendingPathComponent:@"Array.plist"];

[NSArray *array = [[NSArray alloc] initWithObjects:@"123", @"798",@"000",nil];       [array writeToFile:path atomically:YES];

Dictionary方式添加          

NSString *path = [NSHomeDirectory( )  stringByAppendingPathComponent:@"Dic.plist"];                        

NSDictionary *dic = [NSDictionary alloc] initWithObjects:@"first",@"second",@"third"forKeys:@"123",@"456",@"798"];                                                                       [dic writeToFile:path atomically:YES];

  • 数组、字典只能将BOOL、NSNumber、NSString、NSData、NSDate、NSArray、NSDictionary写入属性列表plist文件

六、读取文件类和常用方法

  • NSFileHandle类主要对文件内容进行读取和写入操作

  • NSFileManager类主要对文件的操作(删除、修改、移动、复制等等)

常用处理方法

+ (id)fileHandleForReadingAtPath:(NSString *)path  打开一个文件准备读取     

+ (id)fileHandleForWritingAtPath:(NSString *)path  打开一个文件准备写入

+ (id)fileHandleForUpdatingAtPath:(NSString *)path  打开一个文件准备更新

-  (NSData *)availableData; 从设备或通道返回可用的数据

-  (NSData *)readDataToEndOfFile; 从当前的节点读取到文件的末尾

-  (NSData *)readDataOfLength:(NSUInteger)length; 从当前节点开始读取指定的长度数据

-  (void)writeData:(NSData *)data; 写入数据

-  (unsigned long long)offsetInFile;  获取当前文件的偏移量

-  (void)seekToFileOffset:(unsigned long long)offset; 跳到指定文件的偏移量

-  (unsigned long long)seekToEndOfFile; 跳到文件末尾

-  (void)truncateFileAtOffset:(unsigned long long)offset; 将文件的长度设为offset字节

-  (void)closeFile;  关闭文件

向文件追加数据

NSString *homePath  = NSHomeDirectory( );        

NSString *sourcePath = [homePath stringByAppendingPathConmpone:@"testfile.text"];

NSFileHandle *fielHandle = [NSFileHandle fileHandleForUpdatingAtPath:sourcePath];

[fileHandle seekToEndOfFile];  将节点跳到文件的末尾

NSString *str = @"追加的数据"

NSData* stringData  = [str dataUsingEncoding:NSUTF8StringEncoding];

[fileHandle writeData:stringData]; 追加写入数据

[fileHandle closeFile];

定位数据                    

NSFileManager *fm = [NSFileManager defaultManager];

NSString *content = @"abcdef";

[fm createFileAtPath:path contents:[content dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];

NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:path];

NSUInteger length = [fileHandle availabelData] length]; 获取数据长度

[fileHandle seekToFileOffset;length/2]; 偏移量文件的一半

NSData *data = [fileHandle readDataToEndOfFile];

[fileHandle closeFile];

复制文件                           

NSFileHandle *infile, *outfile; 输入文件、输出文件

NSData *buffer; 读取的缓冲数据

NSFileManager *fileManager = [NSFileManager defaultManager];

NSString *homePath = NSHomeDirectory( );

NSString *sourcePath = [homePath stringByAppendingPathComponent:@"testfile.txt"];  源文件路径

NSString *outPath = [homePath stringByAppendingPathComponent:@"outfile.txt"]; 输出文件路径

BOOL sucess  = [fileManager createFileAtPath:outPath contents:nil attributes:nil];

if (!success)

{

return N0;

}

infile = [NSFileHandle fileHandleForReadingAtPath:sourcePath]; 创建读取源路径文件

if (infile == nil)

{

return NO;

}

outfile = [NSFileHandle fileHandleForReadingAtPath:outPath]; 创建病打开要输出的文件

if (outfile == nil)

{

return NO;

}

[outfile truncateFileAtOffset:0]; 将输出文件的长度设为0

buffer = [infile readDataToEndOfFile];  读取数据

[outfile writeData:buffer];  写入输入

[infile closeFile];        关闭写入、输入文件

[outfile closeFile];

转载于:https://www.cnblogs.com/tsuiyung/p/4351360.html

IOS 文件管理 2相关推荐

  1. IOS文件管理-NSFileMangager-NSdata

    Ios下的文件管理, Ios下不像windows 文件系统那样可以访问任何的文件目录,如C盘.D盘什么的.在Ios中每个应用程序只能访问当前程序的目录,也即sandbox(沙盒模型). iOS为每个应 ...

  2. 安卓手机管理软件_手机文件管理真的很难吗?

    希望星选 读完需要 3分钟 速读仅需1分钟 很多小伙伴吐槽没有好用的手机文件管理软件,今天给大家更新一期手机文件管理. 由于设备原因,这里只能给大家简单介绍安卓的文件管理,iOS的小伙伴拥有强大的iC ...

  3. IOS文件管理系统:沙盒、NSFileManager、NSFileHandle、NSCoding、NSKeyedArchiver解析

    什么是沙盒? 苹果为我们每个app都分配了一个固定的文件夹,我们在开发过程中可以向文件夹存入我们想要存储的数据,同时也能从这些文件夹取这些数据,但是我们不能取到其他app所存储的数据.简单说,沙盒就是 ...

  4. iOS逆向工程Mac工具篇

    class-dump 简介 用于dump目标对象的class信息.它利用OC语言的runtime特性, 将存储在Mach-O可执行文件中的头文件信息提取出来, 并生成对应的.h文件. class-du ...

  5. ios文件同步传输神器:WALTR PRO Mac(1.0.98)

    WALTR PRO 是一款ios文件同步传输神器,在WALTR 2的基础上,WALTR PRO在保留全设备支持.多格式兼容以及局域网传输等优势的同时,新加入自定义接收应用.媒体元数据,以及 macOS ...

  6. python实现简单的api接口-简单实现Python调用有道API接口(最新的)

    # ''' # Created on 2018-5-26 # # @author: yaoshuangqi # ''' import urllib.request import urllib.pars ...

  7. DearMob iPhone Manager for Mac(iPhone手机数据加密传输软件)

    DearMob iPhone Manager 是Mac平台上一款功能强大的iPhone数据传输工具,无需iTunes即可完成数据传输.DearMob iPhone Manager Mac版能够为您进行 ...

  8. 苹果系列产品文件共享神器

    自从我换了ipad4 后,才猛然间发现家里苹果系列的产品还真不少,我和妻子一人一部iphone,儿子也用的是ipad,在潜移默化间我们都对苹果产生了依赖,变成了它旗下的忠实粉丝,虽然苹果系列产品性能优 ...

  9. 【科创人独家】Worktile王涛:创业那些坑很难避免,要磨练在坑里吸取营养的能力

    写在前面 虽然本文中王涛坦诚地复盘了自己的一些失误,但这只是Worktile成长之路的插曲,切勿因本文选题原因导致对王涛格局与能力的误判(诚恳严肃脸). - 文| babayage 编辑 |笑 笑 在 ...

最新文章

  1. Spring基础16——使用FactoryBean来创建
  2. Datawhale第九期组队学习计划
  3. mysql 5.7_MySQL 5.7新特性介绍
  4. 17、计算机图形学——辐射度量学
  5. linux下使用rpm安装libxml2,gcc,gcc-c++等基本包
  6. 零基础学python爬虫-零基础如何学爬虫技术?一篇带你入门!(理论+实操+荐书)...
  7. IE弹出窗口显示URL地址栏
  8. shift键的十一个妙用
  9. 华字后面配什么字比较好_女孩叫华什么名字好听 华字和什么字搭配取名最好...
  10. android 入门-git之上传本地代码到github
  11. java1.4.2中文下载_j2sdk1.4.2-j2sdk下载1.4.2_19官方安装版-西西软件下载
  12. 北京理工大学—计算机专业课程资源
  13. mysql 关键字 desc_mysql数据库表字段使用DESC等关键字报错及解决方法
  14. 核心路由器十项性能指标与路由器简介
  15. 除了SCI-HUB,还有那么多免费外文文献网站,资源速取。
  16. Java编程入门与应用 P104—例4-12(学生管理系统——密码的重复验证)
  17. springboot微信公众号自定义菜单创建及响应
  18. ipad一代还能下软件吗_学习用于软件管理的下一代构建工具
  19. 推荐一款常用的IDE插件,支持前端语言
  20. SSDT HOOK技术轻松让最新版冰刃、XueTr失效

热门文章

  1. 怎样更改计算机ip用户名,无法修改系统IP地址
  2. ct图像去噪 matlab,NSCT 图像去噪 matlab
  3. 熬夜整理出30张可视化大屏模板,不敲一个代码就能直接套用
  4. 13分钟,教你python可视化分析20W数据,找到妹子最爱的内衣
  5. 十年数据分析经验,总结出这三类分析工具最好用
  6. python123m与n的数学运算_python小白进阶之路三——循环结构入门练习+Random库练习...
  7. 可变悬挂与空气悬挂的区别_案例分析:宝马7系F02左后空气悬挂下趴检测与维修...
  8. php mysqli result,PHP mysqli_free_result()与mysqli_fetch_array()函数详解
  9. 一键加速去不掉加锁的_十年斑点去不掉,大妈巧用蜂蜜擦脸,皮肤白净还年轻...
  10. js 返回上一页面_pdf.js实战,含水印、电子签章解决方案