IOS开发-文件管理(二)
2015-07-08 10:35
573 查看
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];
相关文章推荐
- IOS汉字编码转化
- iOS 的 XMPPFramework 简介
- Xcode磁盘空间大清理
- iOS 支付宝应用(备用参考)
- iOS开发-使用Storyboard进行界面跳转及传值
- iOS开发-文件管理(一)
- iOS 多个按钮切换
- 用CocoaPods做iOS程序的依赖管理(唐巧)
- ios 实时检测2G、3G、4G
- [iOS]简单的让Navigation框架视图支持系统右滑返回
- iOS 获取当前时间以及计算年龄(时间差)
- iOS block的用法
- zabbix与nagios对比
- iostat,mpstat,sar即时查看工具,sar累计查看工具
- iostat,mpstat,sar即时查看工具,sar累计查看工具
- IOS小技巧——使用FMDB时如何把一个对像中的NSArray数组属性存到表中
- IOS小技巧——如何使用GCD创建单例模式
- IOS小技巧——如何将美工的16进制颜色转换成IOS中的RGB颜色
- IOS小技巧——如何润色一个Label, 一个label中,展现多种字体效果(图文混编 1)
- IOS不用AutoLayout也能实现自动布局的类(3)----MyRelativeLayout横空出世