gpt4 book ai didi

Objective-C:逐行读取文件

转载 作者:IT老高 更新时间:2023-10-28 12:18:37 26 4
gpt4 key购买 nike

在 Objective-C 中处理大型文本文件的适当方法是什么?假设我需要分别阅读每一行并希望将每一行视为一个 NSString。最有效的方法是什么?

一种解决方案是使用 NSString 方法:

+ (id)stringWithContentsOfFile:(NSString *)path 
encoding:(NSStringEncoding)enc
error:(NSError **)error

然后用换行符分隔行,然后遍历数组中的元素。然而,这似乎相当低效。有没有简单的方法将文件视为流,枚举每一行,而不是一次全部读取?有点像 Java 的 java.io.BufferedReader。

最佳答案

这适用于从 Text 读取 String。如果你想阅读更长的文本(大尺寸的文本),那么使用这里其他人提到的方法,例如缓冲(在内存空间中保留文本的大小)

假设您阅读了一个文本文件。

NSString* filePath = @""//file path...
NSString* fileRoot = [[NSBundle mainBundle]
pathForResource:filePath ofType:@"txt"];

你想摆脱新行。

// read everything from text
NSString* fileContents =
[NSString stringWithContentsOfFile:fileRoot
encoding:NSUTF8StringEncoding error:nil];

// first, separate by new line
NSArray* allLinedStrings =
[fileContents componentsSeparatedByCharactersInSet:
[NSCharacterSet newlineCharacterSet]];

// then break down even further
NSString* strsInOneLine =
[allLinedStrings objectAtIndex:0];

// choose whatever input identity you have decided. in this case ;
NSArray* singleStrs =
[currentPointString componentsSeparatedByCharactersInSet:
[NSCharacterSet characterSetWithCharactersInString:@";"]];

你有它。

关于Objective-C:逐行读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1044334/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com