iOS沙盒 -- 文件对接器(NSFileHandle)

来源:互联网 发布:淘宝使用他人图片扣分 编辑:程序博客网 时间:2024/06/03 11:32
文件对接器(NSFileHandle)
侧重于对文内容的管理,我们可以使用它完成对文件的继续写入,部分读取
在使用文件对接器之前我们必须保证文件路径上,是存在文件的
拼接想创建文件的路径
    NSString*cachePath =[NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES)firstObject];
    NSString*newFilePath = [cachePathstringByAppendingPathComponent:@"hanleFile.txt"];
   NSFileManager *fileManager = [NSFileManager defaultManager];
    if([fileManager fileExistsAtPath:newFilePath] == NO) {
       NSString *str = @"class49 is so pretty";
       BOOL result = [fileManager createFileAtPath:newFilePathcontents:[str dataUsingEncoding:NSUTF8StringEncoding]attributes:nil];
       if (result) {
          向文件中继续写入数据
           NSFileHandle *writeHandle = [NSFileHandlefileHandleForReadingAtPath:newFilePath];
           移动光标节点,挪到最后
           [writeHandle seekToEndOfFile];
           向文件中继续写入内容
           NSString *writeStr = @", very great";
           NSData *writeData = [writeStrdataUsingEncoding:NSUTF8StringEncoding];
           [writeHandle writeData:writeData];
           关闭对接器对应的文件
           [writeHandle closeFile];
       }
    }
文件部分的读取
    NSFileHandle*readHandle = [NSFileHandlefileHandleForReadingAtPath:newFilePath];
读取字符串长度为1的字符串
    NSData*readData = [readHandle readDataOfLength:1];
读取后面一半的长度
读取中数据的长度
    NSIntegerlenght = [readHandle availableData].length;
移动光标节点,挪到一半的距离
    [readHandleseekToFileOffset:lenght / 2];
当我们想要获取全部内容,也需要手动设置seekToFileOffset,设置为0
读取数据
    NSData*readData = [readHandle readDataToEndOfFile];
    NSString*readStr = [[NSString alloc]initWithData:readDataencoding:NSUTF8StringEncoding];
关闭文件
    [readHandlecloseFile];
   NSLog(@"readStr = %@",readStr);

0

0 0
原创粉丝点击