NSData缓存的使用

     NSString *fileName = @"testFileNSFileMangager.txt" ;
    NSArray *paths = NSSearchPathForDirectoriesInDomains ( NSDocumentDirectory , NSUserDomainMask , YES );
    NSString *documentsDirectory = [paths objectAtIndex : 0 ];
   
    NSString *path = [documentsDirectory stringByAppendingPathComponent :fileName]; // 获取文件路径

    NSString *temp = @"nihao 世界 " ; // 要写入的数据
   
   
    int dataInt = 1234 ;
    float dataFloat = 3.14f ;
   
    NSMutableData *writer = [[ NSMutableData alloc ] init ]; // 建立缓存
   
    [writer appendData :[temp dataUsingEncoding : NSUTF8StringEncoding ]];
    [writer appendBytes :&dataInt length : sizeof (dataInt)];
    [writer appendBytes :&dataFloat length : sizeof (dataFloat)]; // 将数据添加到缓存区
   
    [writer writeToFile :path atomically : YES ]; // 将缓存区数据写入文件
   
   
    int intData;
    float floatData = 0.0 ;
    NSString *stringData;
   
    NSData *reader = [ NSData dataWithContentsOfFile :path];
    if (reader == nil ) {
        NSLog ( @"data read failed" );
    }
    stringData = [[ NSString alloc ] initWithData :[reader subdataWithRange : NSMakeRange ( 0 , [temp lengthOfBytesUsingEncoding : NSUTF8StringEncoding ])] encoding : NSUTF8StringEncoding ]; //注意在长度返回时使用lengthOfBytesUsingEncoding:NSUTF8StringEncoding方法即可
    NSLog ( @"%i" ,[temp length ]);
    [reader getBytes :&intData range : NSMakeRange ([temp lengthOfBytesUsingEncoding : NSUTF8StringEncoding ], sizeof (intData))];
    [reader getBytes :&floatData range : NSMakeRange ([temp lengthOfBytesUsingEncoding : NSUTF8StringEncoding ] + sizeof (intData), sizeof (floatData))];
   
    NSLog ( @"string %@ intData %d floatData %f" ,stringData,intData,floatData);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值