11
在Swift中逐行读取文件/ URL
我正在尝试读取中给定的文件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中完成此任务? 关于我正在读取的文件的一些注意事项:所有文件均由短字符串(<255个字符)组成,用\n或分隔\r\n。文件的长度从大约100行到超过5000万行。它们可能包含欧洲字符和/或带有重音符号的字符。