如何快速读写浮点数据,而不是使用字符串?
Posted
技术标签:
【中文标题】如何快速读写浮点数据,而不是使用字符串?【英文标题】:How to write and read float data fast, not using string? 【发布时间】:2012-09-05 01:42:04 【问题描述】:我有许多从图像生成的浮点数据。我想将它存储到一个文件中,比如 XX.dat (一般在 C 中)。我会再读一遍做进一步的处理。
我有方法用 nsstring 表示浮点数并将其写入 .txt 文件。但它太慢了。是否有一些函数与 c 中的 fwrite( *data , *pfile) 和 fread(*buf, *pfile) 相同?还是一些新想法?
非常感谢!
【问题讨论】:
【参考方案1】:在 ios 中,您仍然可以使用标准的低级文件(以及套接字等)API。因此,您可以像在任何其他 C 程序中一样使用 fopen()
、fwrite()
、fread()
等。
这个问题有一些在iOS上使用低级文件API的例子:iPhone Unzip code
另一个要考虑的选项是将你的浮点数写入NSMutableData
实例,然后将其写入文件。这将比将所有内容转换为字符串更快(您将获得二进制文件而不是文本文件),尽管可能仍不如使用低级 API 快。而且您可能必须使用 this 之类的东西在浮点数和字节数组之间进行转换。
【讨论】:
非常感谢aroth!有你指导,我完成了工作,再次感谢!【参考方案2】:如果您熟悉较低级别的访问,您可以映射您的文件,然后像访问任何已分配的内存一样直接访问数据。
【讨论】:
我编写了 c 代码来写入或读取具有较低级别访问权限但在 object-c 中不知道的数据。谢谢你的小费。我会尝试aroth的方法。 Objective-C 是 C 的超集。你可以在 C 中做的任何事情,都可以在 Objective-C 中做。以上是关于如何快速读写浮点数据,而不是使用字符串?的主要内容,如果未能解决你的问题,请参考以下文章