使用swift读入文本文件

时间:2016-01-13 04:27:20

标签: arrays string swift file

全新的Swift,但在其他语言(Java,C,Python ......)中进行了大量的编码,我对简单地读取文件看起来很难感到沮丧。

我已阅读了很多帖子,例如this one,但无法获得他们的建议。另请阅读this postthis one,但解决方案似乎很长时间才能执行这么简单的任务,也不适用于我。

这是一个简单的版本:

    import Foundation
    let path = "./data.txt"        
    let fileContents = String(contentsOfFile: path, encoding: NSUTF8StringEncoding)        
    print(fileContents) // prints out: ("./data.txt", 4)
    let lines : [String] = fileContents.componentsSeparatedByString("\n") // error: value of type 'String' has no member 'componentsSeparatedByString'       

现在,基于我上面链接的第一篇文章,我希望这可以将指定的文件读取到单个字符串中,然后将字符串拆分为换行符并给我一个数组,每行作为一个元素。相反,当我打印fileContents时,我得到某种类型的元组而不是我期望的字符串。当我尝试拆分字符串时,显然该函数不存在。

有人可以解释我缺少的东西并向我展示一个简短的方法来读取文件中的行到字符串数组吗?我正在阅读documentation但是甚至找不到第3行中String()调用的解释或第5行中的componentsSeparatedByString()的引用,所以我完全不在第一篇文章中的建议;任何指针都非常感激。

2 个答案:

答案 0 :(得分:2)

对我来说,我相信其他解决方案的问题源于我在Linux平台上开发,当时这个平台似乎不像在mac上那样工作。这基本上是最终的,这对我有用:

let rectForBall = CGRect(x: 0, y: 0, width: 20, height: 20)

答案 1 :(得分:0)

componentsSeparatedByString(separator: String)已重命名为components(separatedBy: String)。所以,如果你更喜欢在NSString上使用String,那么这就是你的最后一行:

let lines = fileContents.components(separatedBy: "\n")