2009-06-22 181 views
6

我有一個由換行符分隔的單詞/短語文件。我需要獲取文件並將每個單詞/短語讀入數組。我有這個到目前爲止:將文件讀入數組

NSFileHandle *wordsFile = [NSFileHandle fileHandleForReadingAtPath:[[NSBundle  mainBundle] pathForResource:@"WordList" 
                              ofType:nil]]; 
    NSData *words = [wordsFile readDataToEndOfFile]; 
    [wordsFile closeFile]; 
    [wordsFile release]; 

但我不知道如果這是正確的,如果是這樣,從那裏去。

此外,

的NSString componentsSeparatedByCharactersInSet的teabot的回答是:NSCharacterSet newlineCharacterSet

的偉大工程,但它只有10.5。 這種行爲如何被複製爲10.4?

回答

11

下面是應該工作的方法 - 我離開了一個實際的代碼示例的實現應該給予相當直截了當以下:

從文件中構造一個NSString有:

NSString stringWithContentsOfFile:encoding:error 

拆分串入使用NSString的數組如下:

NSString componentsSeparatedByCharactersInSet: 
NSCharacterSet newlineCharacterSet 

您應該結束了與NSString的的一個NSArray w ^每個字符串包含文件中的其中一行。

+1

不要忘了過濾造成的空行空字符串,其中包括一個UNIX編輯器(如vi)將在文件結尾處離開。 – 2009-06-22 22:32:08

+1

這很好,但最後兩個只有10.5 - 如果我想要兼容10.4,什麼可以取代它們? – Walker 2009-06-23 16:10:50

11

只是爲了完整性(因爲我無聊)這裏是bassed上teabot的後一個完整的例子:

NSString *string = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] 
                  pathForResource:@"file" ofType:@"txt"]]; 

    NSArray *array = [string componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]; 
    NSLog(@"%@",array);