我正在尝试学习新的Swift编程语言.它看起来很棒,但我很难做一些像读取本地.txt文件内容这样简单的事情.
我已经尝试了几个我可以通过Google找到的例子,但是它们给出了编译错误,比如这里的答案:从文本文件中读取和写入数据 如果我稍微调整一下代码,它可以工作,但只能从内部的特殊位置读取该项目.
为什么用Swift读取.txt文件就像使用Ruby一样简单?我将如何阅读位于的文件内容~/file.txt?
日Thnx
Ato*_*mix 35
如果你的路径有波浪号,你可以试试这个:
let location = "~/file.txt".stringByExpandingTildeInPath
let fileContent = NSString(contentsOfFile: location, encoding: NSUTF8StringEncoding, error: nil)
Run Code Online (Sandbox Code Playgroud)
否则只需使用此:
let location = "/Users/you/Desktop/test.txt"
let fileContent = NSString(contentsOfFile: location, encoding: NSUTF8StringEncoding, error: nil)
Run Code Online (Sandbox Code Playgroud)
这为您提供了文件的字符串表示,我假设是您想要的.您可以使用NSData(contentsOfFile: location)获取二进制表示,但通常您可以为音乐文件而不是文本文件执行此操作.
更新:使用Xcode 7和Swift 2,这不再起作用了.你现在可以使用了
let location = NSString(string:"~/file.txt").stringByExpandingTildeInPath
let fileContent = try? NSString(contentsOfFile: location, encoding: NSUTF8StringEncoding)
Run Code Online (Sandbox Code Playgroud)
Gri*_*mxn 14
这可行:
let path = "~/file.txt"
let expandedPath = path.stringByExpandingTildeInPath
let data: NSData? = NSData(contentsOfFile: expandedPath)
if let fileData = data {
let content = NSString(data: fileData, encoding:NSUTF8StringEncoding) as String
}
Run Code Online (Sandbox Code Playgroud)
注意data可能是零,所以你应该检查一下.
编辑:不要忘记有条件的展开 - 看起来更好;)
let file = "/Users/user/Documents/text.txt"
let path=URL(fileURLWithPath: file)
let text=try! String(contentsOf: path)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68948 次 |
| 最近记录: |