NSFileHandle: 文件句柄类,用于操作文件的内容
//fileHandleForReadingAtPath: 以只读的方式打开文件,并获取句柄对象
//fileHandleForWritingAtPath: 以只写的方式打开文件,并获取句柄对象
//fileHandleForUpdatingAtPath:以读写的方式打开文件,并获取句柄对象
//Library/PreferencePanes
// 1,先获取Library目录
NSString *libPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES)[0];
// 2,再拼接Preferences目录
NSString *prePath = [libPath stringByAppendingPathComponent:@"New/New.txt"];
//以读写方式打开,并获取句柄对象
NSFileHandle *handle = [NSFileHandle fileHandleForUpdatingAtPath:prePath];
if(handle) //如果文件句柄获取成功,则进行文件操作
{
//文件句柄的读写,都是以二进制数据流的形式进行
//-------------1.文件句柄的读操作-------------
//偏移文件句柄的游标位置 (默认偏移位置为0)
[handle seekToFileOffset:0];
//游标偏移到文件的末尾
//[handle seekToEndOfFile];
//NSData: 二进制数据流的类 可存储文本与非文本文件数据
//NSData *data = [handle readDataOfLength:6];
//从指定游标位置开始一直读取到文件末尾
NSData *data1 = [handle readDataToEndOfFile];
//NSData-->NSString
//数据流转字符串: 参数1:数据流 参数2:编码
//NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSString *str1 = [[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding];
NSLog(@"str1=%@",str1);
//---------------文件句柄的写操作-----------------
//把游标位置指定到开头
[handle seekToFileOffset:0];
NSString *str2=@"似懂非懂分";
//NSString-->NSData: 字符串转数据流
NSData *data2 = [str2 dataUsingEncoding:NSUTF8StringEncoding];
//将数据流写入到句柄操作的文件中
[handle writeData:data2];
}
Dome
网友评论