我正在尝试读取NSURL
中给定的文件,并将其加载到一个数组中,其中的项由换行符\n
分隔。
到目前为止,我是这样做的:
var possList: NSString? = NSString.stringWithContentsOfURL(filePath.URL) as? NSString
if var list = possList {
list = list.componentsSeparatedByString("\n") as NSString[]
return list
}
else {
//return empty list
}
出于几个原因,我对此并不是很满意。首先,我正在处理大小从几千字节到几百MB的文件。正如您可以想象的那样,处理这么大的字符串既慢又笨拙。其次,这会在执行时冻结UI --同样,这并不好。
我已经研究过在一个单独的线程中运行这段代码,但我一直有问题,而且它仍然不能解决处理大型字符串的问题。
我想要做的是类似下面的伪代码:
var aStreamReader = new StreamReader(from_file_or_url)
while aStreamReader.hasNextLine == true {
currentline = aStreamReader.nextLine()
list.addItem(currentline)
}
如何在Swift中实现这一点?
关于我正在阅读的文件,有几点要注意:所有文件都由由\n
或\r\n
分隔的短字符串(<255个字符)组成。文件的长度从大约100行到5000多万行不等。它们可能包含欧洲字符和/或带重音的字符。
https://stackoverflow.com/questions/24581517
复制相似问题