2009-06-22 126 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);