iPhone写入二进制数据

标签 iphone binary

如何将二进制数据写入文件?我想将 float 写入原始文件,然后将它们作为 float 读回。你是怎么做到的?

最佳答案

一直在尝试这个:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *file = [documentsDirectory stringByAppendingPathComponent:@"binaryData"];

float b = 32.0f;

NSMutableData *data = [NSMutableData dataWithLength:sizeof(float)];
[data appendBytes:&b length:sizeof(float)];
[data writeToFile:file atomically:YES];

NSData *read = [NSData dataWithContentsOfFile:file];
float b2;
NSRange test = {0,4};
[read getBytes:&b2 range:test];

奇怪的是,写入的文件似乎是8个字节,而不是4个字节。甚至可以初始化0长度的nsdata,追加一个 float ,然后写入,然后文件将是4个字节。为什么 NSData 默认添加 4 个字节?长度为 4 的 NSData 应该生成长度为 4 的文件,而不是 8。

关于iPhone写入二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1526416/

相关文章:

iphone - 如何告诉用户最近收到的推送通知

perl - 如何在 Perl 中创建二进制文件?

java - Java中的二进制算术算法

java - Java 中的 Nasa 二进制文件

iphone - 我什么时候应该请求 Facebook 访问 token ?

iphone - 如果蓝牙设备不在 MFi 程序中,iPhone 至少可以发现该设备吗?

iphone - 为什么 iAd 不显示广告?

iphone - Unix下针对iphone开发

c - 使用 memfd_create 和 fexecve 从内存运行 ELF

algorithm - 简化 Z = X ^ (X << Y) 函数的反函数