swift - 使用 Swift 读取本地文件的简单方法?

标签 swift

我正在尝试学习新的 Swift 编程语言。看起来不错,但我很难做一些像读取本地 .txt 文件的内容这样简单的事情。

我已经尝试了几个我可以通过谷歌找到的例子,但它们给出了编译错误,就像这里的答案:Read and write data from text file 如果我稍微调整一下代码,它就可以工作,但只能从项目中的一个特殊位置读取。

为什么使用 Swift 读取 .txt 文件不像使用 Ruby 一样简单?我将如何读取位于 ~/file.txt 的文件的内容?

感谢

最佳答案

如果你的路径中有波浪号,你可以试试这个:

let location = "~/file.txt".stringByExpandingTildeInPath
let fileContent = NSString(contentsOfFile: location, encoding: NSUTF8StringEncoding, error: nil)

否则就用这个:

let location = "/Users/you/Desktop/test.txt"
let fileContent = NSString(contentsOfFile: location, encoding: NSUTF8StringEncoding, error: nil)

这为您提供了文件的字符串表示形式,我假设这就是您想要的。 您可以使用 NSData(contentsOfFile: location) 来获取二进制表示,但您通常会为音乐文件而不是文本文件这样做。


更新:在 Xcode 7 和 Swift 2 中,这不再有效。您现在可以使用

let location = NSString(string:"~/file.txt").stringByExpandingTildeInPath
let fileContent = try? NSString(contentsOfFile: location, encoding: NSUTF8StringEncoding)

关于swift - 使用 Swift 读取本地文件的简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25846459/

相关文章:

ios - 在 Swift 3 和 Xcode 8 中使用加速度计和校准

ios - 如何理解 iPhone 上的崩溃报告 iOS 测试

ios - 如何在 Swift 的 For In 循环中打印自定义类?

swift - 从 Firestore 实时更新数组

macos - 使用 NSArrayController 时得到 "valueForUndefinedKey: this class is not key value coding-compliant for the key error"

iOS 谷歌地图方法 UIView 动画不起作用

swift - 在 Swift 中阻止保留循环?

swift - Swift 中 Realm 实例的全局使用

ios - 在 Swift 中获取 UITapGestureRecognizer 的发送者

ios - 如何从字符串中解析十进制而不丢失精度?