首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Swift中逐行读取文件/URL

在Swift中逐行读取文件/URL
EN

Stack Overflow用户
提问于 2014-07-05 07:04:54
回答 10查看 51.1K关注 0票数 84

我正在尝试读取NSURL中给定的文件,并将其加载到一个数组中,其中的项由换行符\n分隔。

到目前为止,我是这样做的:

代码语言:javascript
运行
复制
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 --同样,这并不好。

我已经研究过在一个单独的线程中运行这段代码,但我一直有问题,而且它仍然不能解决处理大型字符串的问题。

我想要做的是类似下面的伪代码:

代码语言:javascript
运行
复制
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多万行不等。它们可能包含欧洲字符和/或带重音的字符。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24581517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档