2014-02-28 162 views
0

我有一個巨大的.txt文件(如100MB),我不想將所有內容加載到NSString中。那我該如何逐行閱讀這個文件呢?如何在Objective-C中逐行讀取.txt文件?

我想是這樣的:

while (endOfFile is not reached) 
    line = readline(); 
+0

這裏的替代答案:[Objective-C:逐行讀取文件](http://stackoverflow.com/questions/1044334/objective-c-reading-a-file-line-by-line)。 –

回答

0

它也可以用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。您需要確保該數字大於文本文件最長行中的字符數。

+0

其實這是我鏈接到的問題的答案之一:http://stackoverflow.com/a/20257340/1187415。 –

+0

@MartinR我從我的一個項目中複製了它,但可能我剛纔複製了剪切後的表單的另一個源代碼(您的鏈接也許)。 – Merlevede