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 }
  • 相关阅读:
    联通手机号停机保号了,想恢复要短信验证码登陆但是无法接收短信验证码怎么办
    记卖饭让我先吃
    POJ 3658 Artificial Lake
    POJ 3662 Telephone Lines (dijstra+二分)
    CodeForces 748C Santa Claus and Robot
    CodeForces 748B Santa Claus and Keyboard Check
    POJ 3659 Cell Phone Network(树形dp树的最小点支配集)
    【JZOJ 5455】拆网线 【树形DP】
    【JZOJ 5455】拆网线 【树形DP】
    【JZOJ 5455】拆网线 【树形DP】
  • 原文地址:https://www.cnblogs.com/DevinSMR/p/5263692.html
Copyright © 2011-2022 走看看