如何将二进制数据写入文件?我想写浮动到一个文件,原始,然后读取它们作为浮动。你是怎样做的?iPhone写入二进制数据
5
A
回答
6
一直在尝试这样的:
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的甚至有可能,追加浮动,然后写入,然后文件将是4个字节。为什么NSData默认添加4个字节?一个长度为4的NSData应该产生长度为4而不是8的文件。
3
请注意,Objective-C只是C编程语言的扩展。
我通常会创建一个NSFileHandle然后写二进制数据是这样的:
NSFileHandle handle*;
float f;
write([handle fileDescriptor], &f, sizeof(float));
相关问题
- 1. 写入二进制数据
- 2. 使用FileSystemObject写入二进制数据()
- 3. 将二进制数据写入文件
- 4. 在R中写入二进制数据
- 5. 二进制写入地址
- 6. 写入二进制文件
- 7. 写入二进制文件?
- 8. 写入二进制文件
- 9. 写入二进制文件
- 10. 写的字符串二进制数据的二进制文件
- 11. 写大二进制数据到文件
- 12. 写回数据到二进制文件
- 13. 将文本或二进制数据写入单个C函数
- 14. 二进制数据
- 15. 二进制数据
- 16. 写入二进制数据时仅写入大约240个字节
- 17. Matlab将图像数据写入二进制文件
- 18. 如何在VBScript中将二进制数据写入磁盘?
- 19. 读取/写入压缩的二进制数据
- 20. 使用IronPython将二进制数据写入stdout
- 21. 的HttpHandler写二进制数据的响应,载入图片
- 22. 如何将二进制数据写入R的csv文件
- 23. 将结构数据写入二进制文件
- 24. 如何写入数据位以形成二进制文件?
- 25. 从JavaScript(火狐插件)写入二进制数据
- 26. 从HDFS文件写入二进制数据到SequenceFile
- 27. 开销数据写入到一个二进制文件
- 28. Linq to XML - 将二进制数据写入XML的方式
- 29. 如何在bash中写入二进制数据
- 30. 从二进制数据写入.zip文件
你可以使用十六进制编辑器来检查文件的内容时,它具有8个字节?在我看来,你应该能够挑出哪一个是你的浮球,其他四个可能会给你一个线索,看看哪里出了问题。 – Tim 2009-10-06 16:46:24
确实。最后4个是浮动。该文件如下所示:00 00 00 00 00 00 00 42 – quano 2009-10-06 16:53:53
显然,使用长度来初始化一个NSMutableData会导致它将该长度附加到其数据并指向该空间。用长度为0的方式引入它就是解决方案。然后人们可以问自己为什么要用任何其他长度为0以上的长度来初始化它。 – quano 2009-10-06 19:49:11