2012-02-24 92 views
2

我的包中有一个大型文本资源。这是一个CSV包含行像将大型文本资源读取到iOS上的数组中

0,1,100,2.2345 

它超过9MB。什么是打开和顺序读取它,所以我可以做这样的事情的最好方法:

myObject->initData(col0, col1, col2, col3); 

(刚刚充塞浮点值成数由文件中的整数索引的多维数组中的一个)

我试着用[NSString stringWithContentsOfFile:]NSScanner来将它读入一个字符串中,但我不想让我的内存使用量增加一倍,即使是暂时的。它也很慢。

这样做的最好方法是什么?

感谢

回答

3

可以使用NSFileHandle或C API来不断的读取,或者您可以使用mmap与NSData

其余部分是基本的cstring缓冲区处理,或者可以使用NSString一行一行。

如果您可以将它导出为二进制浮点数而不是CSV,那么您的生活可能会更轻松。

+0

谢谢。我不想使用内存映射数据,所以我会尝试NSFileHandle方法并按顺序读取。让我把这个开放一天左右,看看是否有其他人有其他想法(我的意思是,你已经覆盖了我能想到的每一个基础,但你永远不知道)。 – 2012-02-24 14:38:18

+0

C缓冲区处理('fopen','fgets'等等)最后工作。谢谢。 – 2012-02-24 21:55:28

+0

@Tim肯普酷 - 不客气! – justin 2012-02-24 22:58:00