如何快速写入和读取浮点数据,而不是使用字符串?

时间:2012-09-05 01:42:04

标签: ios

我有许多从图像生成的浮点数据。我想将它存储到一个文件,如XX.dat(C中的一般)。我会再次阅读它以进行进一步处理。

我有通过nsstring表示float的方法,并将其写入.txt文件。但它太慢了。是否有一些函数与c中的fwrite(* data,* pfile)和fread(* buf,* pfile)相同?还是一些新想法?

非常感谢!

2 个答案:

答案 0 :(得分:1)

在iOS中,您仍然可以使用标准的低级文件(以及套接字等)API。因此,您可以像使用任何其他C程序一样使用fopen()fwrite()fread()等。

此问题提供了一些在iOS上使用低级文件API的示例:iPhone Unzip code

另一个需要考虑的选择是将你的浮点数写成NSMutableData实例,然后将其写入文件。这将比将所有内容转换为字符串更快(您将获得二进制文件而不是文本文件),尽管可能仍然没有使用低级API那么快。你可能不得不使用this之类的东西在浮点数和字节数组之间进行转换。

答案 1 :(得分:0)

如果您熟悉较低级别的访问权限,则可以对文件进行mmap,然后直接访问数据,就像分配内存一样。