zoukankan      html  css  js  c++  java
  • 用NSData玩转二进制文件的读写

    #import <Foundation/Foundation.h>
    
    int main (int argc, const char * argv[])
    {
    
        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    
        NSString *path = @"/Users/billchen/Desktop/f1.rtf";	
        NSString *temp = @"Hello Friend";
        int i = 100;
        float f = 98.3333f;
        NSMutableData *writer = [[NSMutableData alloc] init];
        [writer appendData:[temp dataUsingEncoding:NSUTF8StringEncoding]];
        [writer appendBytes:&i length:sizeof(i)];//&表示取址
        [writer appendBytes:&f length:sizeof(f)];
        [writer writeToFile:path atomically:YES];
        [writer release];
        
        int ii;
        float ff;
        NSString *ttemp;
        NSData *reader = [NSData dataWithContentsOfFile:path];
        ttemp = [[NSString alloc]initWithData:[reader subdataWithRange:NSMakeRange(0, [temp length])] encoding:NSUTF8StringEncoding];
        [reader getBytes:&ii range:NSMakeRange([temp length], sizeof(ii))];
        [reader getBytes:&ff range:NSMakeRange([temp length] + sizeof(ii), sizeof(ff))];
        NSLog(@"string:%@ int:%i float:%f", ttemp, ii, ff);
        [temp release];
        [ttemp release];
        [path release];
    
        [pool drain];
        return 0;
    }
    
    • &用于取址,获取指针
    • NSMakeRange 用于生成NSRange

    返回结果:

    [Switching to process 13606 thread 0x0]
    2011-05-09 13:24:04.962 demo09[13606:903] string:Hello Friend int:100 float:98.333298
    

  • 相关阅读:
    数据库之01-数据库概述
    Bootstrap框架
    jQuery
    补充:html速查表
    BOM,DOM相关案例
    BOM,DOM
    函数,词法分析,内置对象和方法
    前端 之 JaveScript 基础语法: 数据类型; 运算符; 数据转换; 流程控制; 常用内置对象;
    favicon.ioc使用以及注意事项
    redux-undo
  • 原文地址:https://www.cnblogs.com/chenjunbiao/p/2041063.html
Copyright © 2011-2022 走看看