摘要:本文将带你了解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频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号