zoukankan      html  css  js  c++  java
  • NSFileHandle(文件对接器)

     1 #import "ViewController.h"
     2 
     3 @interface ViewController ()
     4 
     5 @end
     6 
     7 @implementation ViewController
     8 
     9 - (void)viewDidLoad {
    10     [super viewDidLoad];
    11    //由于文件对接器不能创建文件,所以必须借助文件管理器创建文件,
    12     NSString *documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
    13     
    14     NSString *filePath = [documents stringByAppendingPathComponent:@"text.txt"];
    15     NSString *str = @"123456789abcdedfghij";
    16     [str writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];
    17     NSLog(@"%@",filePath);
    18     
    19     //文件对接器,对文件内容进行操作
    20     
    21     //读取
    22     NSFileHandle *readFileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];
    23     //从文件中得到可用数据
    24     //NSData *availableData = [readFileHandle availableData];
    25     //NSLog(@"%@",[[NSString alloc] initWithData:availableData encoding:NSUTF8StringEncoding]);
    26     
    27     //从当前节点,读取指定长度的数据,须把前边的availbleData注掉,不然取不到
    28     NSData *lengthData = [readFileHandle readDataOfLength:10];
    29     NSLog(@"%@",[[NSString alloc] initWithData:lengthData encoding:NSUTF8StringEncoding]);
    30     
    31     //设置节点偏移量
    32     [readFileHandle seekToFileOffset:0];
    33     NSData *lengthData2 = [readFileHandle readDataOfLength:5];
    34     NSLog(@"%@",[[NSString alloc] initWithData:lengthData2 encoding:NSUTF8StringEncoding]);
    35     
    36     NSData *lengthData3 = [readFileHandle readDataOfLength:5];
    37     NSLog(@"%@",[[NSString alloc] initWithData:lengthData3 encoding:NSUTF8StringEncoding]);
    38     //从当前节点读取到文件末尾
    39     NSData *endData = [readFileHandle readDataToEndOfFile];
    40     NSLog(@"%@",[[NSString alloc] initWithData:endData encoding:NSUTF8StringEncoding]);
    41     
    42     //关闭文件
    43     [readFileHandle closeFile];
    44     //写入数据
    45     NSFileHandle *writeHandle = [NSFileHandle fileHandleForWritingAtPath:filePath];
    46     
    47     //设置节点位置
    48     [writeHandle  seekToFileOffset:10];
    49     //写入
    50     [writeHandle writeData:lengthData];
    51     //获取节点偏移量
    52     NSInteger offset = [writeHandle offsetInFile];
    53     NSLog(@"%ld",offset);
    54     
    55     //将文件长度设置为偏移量
    56     [writeHandle truncateFileAtOffset:40];
    57     //关闭文件
    58     [writeHandle closeFile];
    59     
    60     
    61 }
  • 相关阅读:
    2017.08.07 python爬虫实战之使用代理爬取糗事百科
    2017.08.05 Python网络爬虫实战之获取代理
    2017.08.04 Python网络爬虫之Scrapy爬虫实战二 天气预报的数据存储问题
    2017.08.04 Python网络爬虫之Scrapy爬虫实战二 天气预报
    2017.07.28 Python网络爬虫之爬虫实战 重新梳理------今日影视爬虫(使用Scrapy爬取ajax动态页面)
    2017.07.28 Python网络爬虫之爬虫实战 今日影视2 获取JS加载的数据
    RabbitMQ之工作队列
    pt-online-schema-change和默认值关系
    flex词法解析
    Makefile持续学习二
  • 原文地址:https://www.cnblogs.com/DevinSMR/p/5263692.html
Copyright © 2011-2022 走看看