IOS开发入门之iOS NSFileHandle的使用
凌雪 2018-11-09 来源 :网络 阅读 817 评论 0

摘要:本文将带你了解IOS开发入门iOS NSFileHandle的使用,希望本文对大家学IOS有所帮助。

本文将带你了解IOS开发入门iOS NSFileHandle的使用,希望本文对大家学IOS有所帮助。


       

iOS   NSFileHandle的使用。读取数据时,读取的是NSData,后再转换成NSString,当出现转换NSString为nil时,是因为NSData为不完全的。

NNString的中文字符1位对应转换成NSData时是3位。

所以在指定位置,指定长度时,需要以NSData来计算。



   

/**

 *  写入内容到指定位置

 *

 *  @param filePath   文件路径(如:xxx/xx/.../xx.txt)

 *  @param content    内容

 *  @param position   位置

 */

+ (void)writeFileWithFilePath:(NSString *)filePath content:(NSString   *)content position:(unsigned long long)position

{

    NSFileHandle *fielHandle = [NSFileHandle   fileHandleForUpdatingAtPath:filePath];

    //   将节点跳到文件指定位置

    [fielHandle seekToFileOffset:position];

    // 写入内容

    NSData *data = [content dataUsingEncoding:NSUTF8StringEncoding];

    // 追加写入数据

    [fielHandle writeData:data];

    [fielHandle closeFile];

}

   


   

/**

 *  写入内容到文件末尾

 *

 *  @param filePath   文件路径(如:xxx/xx/.../xx.txt)

 *  @param content    内容

 */

+   (void)writeFileBackWithFilePath:(NSString *)filePath   content:(NSString *)content

{

    NSFileHandle *fielHandle = [NSFileHandle   fileHandleForUpdatingAtPath:filePath];

    // 将节点跳到文件末尾

    [fielHandle   seekToEndOfFile];

    // 写入内容

    NSData *data = [content   dataUsingEncoding:NSUTF8StringEncoding];

    // 追加写入数据

    [fielHandle   writeData:data];

    [fielHandle   closeFile];

}

   



   

/**

 *    读取文件指定位置后指定长度的内容

 *

 *  @param filePath   文件路径(如:xxx/xx/.../xx.txt)

 *  @param position   指定位置

 *  @param length     指定长度

 *

 *  @return   NSString

 */

+   (NSString *)readFileWithFilePath:(NSString *)filePath position:(unsigned   long   long)position   length:(NSUInteger)length

{

    NSFileHandle *fileHandle = [NSFileHandle   fileHandleForReadingAtPath:filePath];

    // 偏移量文件

    [fileHandle   seekToFileOffset:position];

    NSData *data = [fileHandle   readDataOfLength:length];

    [fileHandle   closeFile];

    NSString *text = [[NSString alloc]   initWithData:data   encoding:NSUTF8StringEncoding];

    return text;

}

   



   

/**

 *  读取文件内容

 *

 *  @param filePath   文件路径(如:xxx/xx/.../xx.txt)

 *

 *  @return   NSString

 */

+   (NSString *)readFileWithFilePath:(NSString   *)filePath

{

    NSFileHandle *fileHandle = [NSFileHandle   fileHandleForReadingAtPath:filePath];

    NSData *data = [fileHandle   readDataToEndOfFile];

    [fileHandle   closeFile];

    NSString *text = [[NSString alloc]   initWithData:data   encoding:NSUTF8StringEncoding];

    return text;

}

   



   

/**

 *  复制文件内容

 *

 *  @param fromPath   复制前原文件路径(如:xxx/xxx/.../xx.txt)

 *  @param toPath     复制后新文件路径(如:xaxa/abxx/../aaa.txt)

 */

+   (void)copyFileWithFilePath:(NSString *)fromPath toPath:(NSString   *)toPath

{

    // 输入文件

    NSFileHandle *infile = [NSFileHandle   fileHandleForReadingAtPath:fromPath];

    // 读取的缓冲数据   读取数据

    NSData *buffer = [infile   readDataToEndOfFile];

    [infile   closeFile];

     

    // 输出文件

    NSFileHandle *outfile = [NSFileHandle   fileHandleForWritingAtPath:toPath];

    // 将输出文件的长度设为0

    [outfile   truncateFileAtOffset:0];

    // 写入输入

    [outfile   writeData:buffer];

    [outfile   closeFile];

}

   

    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程