我的包中有大量文本资源。这是一个 CSV,其中包含诸如
之类的行0,1,100,2.2345
超过 9MB。打开并按顺序读取它的最佳方式是什么,这样我就可以执行以下操作:
myObject->initData(col0, col1, col2, col3);
(这只是将浮点值填充到由文件中的整数索引的多个多维数组之一中。)
我尝试使用 [NSString stringWithContentsOfFile:]
将其读入字符串,并使用 NSScanner
对其进行循环,但我不想使内存加倍使用,即使是暂时的。它也很慢。
最好的方法是什么?
谢谢
最佳答案
您可以使用NSFileHandle
或C API来增量读取,也可以将mmap与NSData
结合使用。
剩下的就是基本的 cstring 缓冲区处理,或者您可以逐行使用 NSString
。
如果您可以将其导出为二进制浮点序列而不是 CSV,您的生活可能会更轻松。
关于ios - 在 iOS 上将大型文本资源读入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9424871/