IOS 文件管理 2
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相关推荐
- IOS文件管理-NSFileMangager-NSdata
Ios下的文件管理, Ios下不像windows 文件系统那样可以访问任何的文件目录,如C盘.D盘什么的.在Ios中每个应用程序只能访问当前程序的目录,也即sandbox(沙盒模型). iOS为每个应 ...
- 安卓手机管理软件_手机文件管理真的很难吗?
希望星选 读完需要 3分钟 速读仅需1分钟 很多小伙伴吐槽没有好用的手机文件管理软件,今天给大家更新一期手机文件管理. 由于设备原因,这里只能给大家简单介绍安卓的文件管理,iOS的小伙伴拥有强大的iC ...
- IOS文件管理系统:沙盒、NSFileManager、NSFileHandle、NSCoding、NSKeyedArchiver解析
什么是沙盒? 苹果为我们每个app都分配了一个固定的文件夹,我们在开发过程中可以向文件夹存入我们想要存储的数据,同时也能从这些文件夹取这些数据,但是我们不能取到其他app所存储的数据.简单说,沙盒就是 ...
- iOS逆向工程Mac工具篇
class-dump 简介 用于dump目标对象的class信息.它利用OC语言的runtime特性, 将存储在Mach-O可执行文件中的头文件信息提取出来, 并生成对应的.h文件. class-du ...
- ios文件同步传输神器:WALTR PRO Mac(1.0.98)
WALTR PRO 是一款ios文件同步传输神器,在WALTR 2的基础上,WALTR PRO在保留全设备支持.多格式兼容以及局域网传输等优势的同时,新加入自定义接收应用.媒体元数据,以及 macOS ...
- python实现简单的api接口-简单实现Python调用有道API接口(最新的)
# ''' # Created on 2018-5-26 # # @author: yaoshuangqi # ''' import urllib.request import urllib.pars ...
- DearMob iPhone Manager for Mac(iPhone手机数据加密传输软件)
DearMob iPhone Manager 是Mac平台上一款功能强大的iPhone数据传输工具,无需iTunes即可完成数据传输.DearMob iPhone Manager Mac版能够为您进行 ...
- 苹果系列产品文件共享神器
自从我换了ipad4 后,才猛然间发现家里苹果系列的产品还真不少,我和妻子一人一部iphone,儿子也用的是ipad,在潜移默化间我们都对苹果产生了依赖,变成了它旗下的忠实粉丝,虽然苹果系列产品性能优 ...
- 【科创人独家】Worktile王涛:创业那些坑很难避免,要磨练在坑里吸取营养的能力
写在前面 虽然本文中王涛坦诚地复盘了自己的一些失误,但这只是Worktile成长之路的插曲,切勿因本文选题原因导致对王涛格局与能力的误判(诚恳严肃脸). - 文| babayage 编辑 |笑 笑 在 ...
最新文章
- Spring基础16——使用FactoryBean来创建
- Datawhale第九期组队学习计划
- mysql 5.7_MySQL 5.7新特性介绍
- 17、计算机图形学——辐射度量学
- linux下使用rpm安装libxml2,gcc,gcc-c++等基本包
- 零基础学python爬虫-零基础如何学爬虫技术?一篇带你入门!(理论+实操+荐书)...
- IE弹出窗口显示URL地址栏
- shift键的十一个妙用
- 华字后面配什么字比较好_女孩叫华什么名字好听 华字和什么字搭配取名最好...
- android 入门-git之上传本地代码到github
- java1.4.2中文下载_j2sdk1.4.2-j2sdk下载1.4.2_19官方安装版-西西软件下载
- 北京理工大学—计算机专业课程资源
- mysql 关键字 desc_mysql数据库表字段使用DESC等关键字报错及解决方法
- 核心路由器十项性能指标与路由器简介
- 除了SCI-HUB,还有那么多免费外文文献网站,资源速取。
- Java编程入门与应用 P104—例4-12(学生管理系统——密码的重复验证)
- springboot微信公众号自定义菜单创建及响应
- ipad一代还能下软件吗_学习用于软件管理的下一代构建工具
- 推荐一款常用的IDE插件,支持前端语言
- SSDT HOOK技术轻松让最新版冰刃、XueTr失效
热门文章
- 怎样更改计算机ip用户名,无法修改系统IP地址
- ct图像去噪 matlab,NSCT 图像去噪 matlab
- 熬夜整理出30张可视化大屏模板,不敲一个代码就能直接套用
- 13分钟,教你python可视化分析20W数据,找到妹子最爱的内衣
- 十年数据分析经验,总结出这三类分析工具最好用
- python123m与n的数学运算_python小白进阶之路三——循环结构入门练习+Random库练习...
- 可变悬挂与空气悬挂的区别_案例分析:宝马7系F02左后空气悬挂下趴检测与维修...
- php mysqli result,PHP mysqli_free_result()与mysqli_fetch_array()函数详解
- 一键加速去不掉加锁的_十年斑点去不掉,大妈巧用蜂蜜擦脸,皮肤白净还年轻...
- js 返回上一页面_pdf.js实战,含水印、电子签章解决方案