文件句柄:NSFileHandle

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

你可能感兴趣的:(文件句柄:NSFileHandle)