我的捆绑包中有大量文本资源。这是CSV,其中包含以下行

0,1,100,2.2345

超过9MB。打开并按顺序阅读它的最佳方法是什么,所以我可以执行以下操作:
myObject->initData(col0, col1, col2, col3);

(这只是将float值填充到由文件中的整数索引的多个多维数组之一中。)

我尝试使用[NSString stringWithContentsOfFile:]将其读取为字符串,并使用NSScanner对其进行循环,但我不想使内存使用量翻一番,即使是暂时的。也很慢。

最好的方法是什么?

谢谢

最佳答案

您可以使用NSFileHandle或C API进行增量读取,也可以将mmap与NSData一起使用。

其余的是基本的cstring缓冲区处理,或者您可以逐行使用NSString

如果可以将其导出为二进制浮点序列而不是CSV,则可能会更轻松。

10-08 05:58