我有一个巨大的.txt文件(如100mb),我不想将所有内容加载到NSString中。那么如何逐行阅读这个文件呢?
我想要像:
while ( endOfFile is not reached )
line = readline();
答案 0 :(得分:1)
也可以使用C代码(因为ObjectiveC是C的超集);有fgets
函数只能读取一行。
FILE *file = fopen([filename UTF8String], "r");
char buffer[256];
while (fgets(buffer, sizeof(char)*256, file) != NULL){
NSString* line = [NSString stringWithUTF8String:buffer];
NSLog(@"%@",line);
}
唯一棘手的部分是您在代码中看到的256
。您需要确保此数字大于文本文件最长行中的字符数。