将文件读入数组

时间:2009-06-22 13:36:01

标签: objective-c cocoa arrays file

我有一个由换行符分隔的单词/短语文件。我需要获取文件并将每个单词/短语读入数组。到目前为止我有这个:

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

但是我不确定这是否正确,如果是的话,从哪里开始。

此外,teabot的答案

NSString componentsSeparatedByCharactersInSet:NSCharacterSet newlineCharacterSet

效果很好,但只有10.5。 如何为10.4复制此行为?

2 个答案:

答案 0 :(得分:11)

这是一种应该有效的方法 - 我将省略一个实际的代码示例,因为实现应该相当简单,具体如下:

使用以下命令从文件构造NSString:

NSString stringWithContentsOfFile:encoding:error

使用以下内容将字符串拆分为NSStrings数组:

NSString componentsSeparatedByCharactersInSet:
NSCharacterSet newlineCharacterSet

你应该得到NSSrings的NSArray,每个字符串包含你文件中的一行。

答案 1 :(得分:11)

为了完整性(因为我很无聊)这里有一个基于teabot帖子的完整示例:

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

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