博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC中文件读取类(NSFileHandle)介绍和常用使用方法
阅读量:5328 次
发布时间:2019-06-14

本文共 2535 字,大约阅读时间需要 8 分钟。

NSFileHandle

1.NSFileManager类主要对于文件的操作(删除,修改,移动,赋值等等)

//判断是否有 tagetPath 文件路径,没有就创建    NSFileManager *fileManage = [NSFileManager defaultManager];    BOOL success = [fileManage createFileAtPath:tagetPath contents:nil attributes:nil];    if (success) {    NSLog(@"create success");    }

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

①NSFileHandle处理文件的步骤

1:创建一个NSFileHandle对象

//创建流    NSFileHandle *inFileHandle = [NSFileHandle fileHandleForReadingAtPath:srcPath];    NSFileHandle *outFileHandle = [NSFileHandle fileHandleForWritingAtPath:tagetPath];

2:对打开的文件进行I/O操作

//获取文件路径    NSString *homePath = NSHomeDirectory();    NSString *filePath = [homePath stringByAppendingPathComponent:@"phone/Date.text"];    NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:filePath]; //定位到最后  [fileHandle seekToEndOfFile];  //定位到某个位置,100字节之后    [fileHandle seekToFileOffset:100];   //追加的数据    NSString *str = @"add world";    NSData *stringData = [str dataUsingEncoding:NSUTF8StringEncoding];    //追加写入数据    [fileHandle writeData:stringData];

3:关闭文件对象操作

  //关闭流    [fileHandle closeFile];
常用处理方法,读
//读取文件内容void readByFile(){    //文件路径    NSString *homePath = NSHomeDirectory();    NSString *filePath = [homePath stringByAppendingPathComponent:@"phone/cellPhone.text"];    NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];    NSInteger length = [fileHandle availableData].length;    //跳转到指定位置    [fileHandle seekToFileOffset:length/2];    NSData *data = [fileHandle readDataToEndOfFile];    NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];    NSLog(@"%@",str);    [fileHandle closeFile];}
复制文件
void copy2Other(){    NSString *homePath = NSHomeDirectory();    NSString *filePath = [homePath stringByAppendingPathComponent:@"phone/cellPhone.text"];    NSString *tagetPath = [homePath stringByAppendingPathComponent:@"phone/cellPhone_bak.text"];    //是否有这个文件,没有则创建    NSFileManager *fileManage =[NSFileManager defaultManager];    BOOL success = [fileManage createFileAtPath:tagetPath contents:nil attributes:nil];    if (success) {        NSLog(@"create success");    }    //通过 NSFileHandle 读取源文件,写入另一文件中    NSFileHandle *outFileHandle = [NSFileHandle fileHandleForWritingAtPath:tagetPath];    NSFileHandle *inFileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];    NSData *data = [inFileHandle readDataToEndOfFile];    [outFileHandle writeData:data];    //关闭流    [inFileHandle closeFile];    [outFileHandle closeFile];}

转载于:https://www.cnblogs.com/ShaoYinling/p/4746541.html

你可能感兴趣的文章
C# 索引器
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
delphi 内嵌汇编例子
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
MATLAB作图方法与技巧(一)
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>
Google透露Android Market恶意程序扫描服务
查看>>
给mysql数据库字段值拼接前缀或后缀。 concat()函数
查看>>
迷宫问题
查看>>
【FZSZ2017暑假提高组Day9】猜数游戏(number)
查看>>
泛型子类_属性类型_重写方法类型
查看>>
eclipse-将同一个文件分屏显示
查看>>
mysql5.x升级至mysql5.7后导入之前数据库date出错的解决方法!
查看>>
对闭包的理解
查看>>
练习10-1 使用递归函数计算1到n之和(10 分
查看>>
Oracle MySQL yaSSL 不明细节缓冲区溢出漏洞2
查看>>
windows编程ASCII问题
查看>>
.net webService代理类
查看>>