如何读取Objective C中Text文件中的最后n行

时间:2013-07-12 06:39:20

标签: ios objective-c text-files

我有一个文本文件,它有很多行如何从文本文件中获取最后'n'行?我们可以在每个文件的文本文件中给出数字我们怎样才能得到它。

3 个答案:

答案 0 :(得分:4)

您可以使用NSFileHandleseekToEndOfFile,然后使用offsetInFileseekToFileOffset:向后工作,readDataOfLength:扫描每次读取的数据,以便回车和计算它们直到达到所需数量。当你走的时候,你可以在每次扫描后建立文本。

答案 1 :(得分:0)

尝试使用这个:

    NSString* textFile = [[NSBundle mainBundle] 
                   pathForResource:@"fileName" ofType:@"txt"];

    NSString* fileContents = [NSString stringWithContentsOfFile: textFile 
           encoding: NSUTF8StringEncoding error: nil];

用新行分隔

    NSArray* allLinedStrings = 
          [fileContents componentsSeparatedByCharactersInSet:
          [NSCharacterSet newlineCharacterSet]];

在这里,您可以获得最近100个对象

    NSString* oneLineStr;
    for (int i = allLinedStrings.count - 100; i < allLinedStrings.count; i++)
    {
        oneLineStr = [allLinedStrings objectAtIndex: i];
        NSLog@("New Line %@", oneLineStr);
    }

答案 2 :(得分:0)

一种方法是使用\ n来分隔文本文件中的不同行。然后

NSString* path = [[NSBundle mainBundle] pathForResource:@"filename" 
                                                 ofType:@"txt"];
NSString* content = [NSString stringWithContentsOfFile:path
                                              encoding:NSUTF8StringEncoding
                                                 error:NULL];
NSArray* lines = [content componentsSeparatedByString: @"\n"];

然后你可以获取数组中的最后几个元素。

希望这会有所帮助..