我正在尝试使用 Swift playground 读取文本文件
let dirs : String[]? = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true) as? String[]
if (dirs != nil) {
let directories:String[] = dirs!;
let dir = directories[0]; //documents directory
let path = dir.stringByAppendingPathComponent(file);
//read
let content = String.stringWithContentsOfFile(path, encoding: NSUTF8StringEncoding, error: nil)
}
然而,这没有错误地失败了。似乎第一行阻止 Playground 输出下面的任何内容
最佳答案
您还可以将文件放入 playground 的资源中。为此:使用 CMD + 1
显示 Project Navigator。将文件拖放到资源文件夹中。然后读取文件:
在 Xcode 6.4 和 Swift 1.2 上:
var error: NSError?
let fileURL = NSBundle.mainBundle().URLForResource("Input", withExtension: "txt")
let content = String(contentsOfURL: fileURL!, encoding: NSUTF8StringEncoding, error: &error)
在 Xcode 7 和 Swift 2 上:
let fileURL = NSBundle.mainBundle().URLForResource("Input", withExtension: "txt")
let content = try String(contentsOfURL: fileURL!, encoding: NSUTF8StringEncoding)
在 Xcode 8 和 Swift 3 上:
let fileURL = Bundle.main.url(forResource: "Input", withExtension: "txt")
let content = try String(contentsOf: fileURL!, encoding: String.Encoding.utf8)
如果文件包含二进制数据,您可以使用 NSData(contentsOfURL: fileURL!)
或 Data(contentsOf: fileURL!)
(对于 Swift 3)。
关于swift - 我如何在快速的 Playground 中读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24245916/