我有一个文本文件,它有很多行如何从文本文件中获取最后'n'行?我们可以在每个文件的文本文件中给出数字我们怎样才能得到它。
答案 0 :(得分:4)
您可以使用NSFileHandle
,seekToEndOfFile
,然后使用offsetInFile
从seekToFileOffset:
向后工作,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"];
然后你可以获取数组中的最后几个元素。
希望这会有所帮助..