我有一個巨大的.txt文件(如100MB),我不想將所有內容加載到NSString中。那我該如何逐行閱讀這個文件呢?如何在Objective-C中逐行讀取.txt文件?
我想是這樣的:
while (endOfFile is not reached)
line = readline();
我有一個巨大的.txt文件(如100MB),我不想將所有內容加載到NSString中。那我該如何逐行閱讀這個文件呢?如何在Objective-C中逐行讀取.txt文件?
我想是這樣的:
while (endOfFile is not reached)
line = readline();
它也可以用C代碼(因爲是的ObjectiveC℃的超集);有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
。您需要確保該數字大於文本文件最長行中的字符數。
其實這是我鏈接到的問題的答案之一:http://stackoverflow.com/a/20257340/1187415。 –
@MartinR我從我的一個項目中複製了它,但可能我剛纔複製了剪切後的表單的另一個源代碼(您的鏈接也許)。 – Merlevede
這裏的替代答案:[Objective-C:逐行讀取文件](http://stackoverflow.com/questions/1044334/objective-c-reading-a-file-line-by-line)。 –