使用此解决方案有效,但如果我打开文件,则其中没有文字。我错过了什么吗?
let dirs : [String]? = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true) as? [String]
if ((dirs) != nil) {
let dir = dirs![0]; //documents directory
let path = dir.stringByAppendingPathComponent("data.txt");
let text = "some text"
//writing
text.writeToFile(path, atomically: false, encoding: NSUTF8StringEncoding, error: nil);
//reading
let text2 = String(contentsOfFile: path, encoding: NSUTF8StringEncoding, error: nil)
println(text2)
答案 0 :(得分:0)
您应该使用文件管理器来获取您的文档文件夹网址。它不返回可选项。然后,您可以强制从其中安全地展开路径并附加路径组件(文件名)。您还可以使用.first或.last来访问数组的第一个或最后一个元素。您还应该考虑使用atomically = true来防止电源故障时数据损坏。
let documentsUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first as NSURL
let path = documentsUrl.path!.stringByAppendingPathComponent("data.txt")
let text = "some text"
text.writeToFile(path, atomically: true, encoding: NSUTF8StringEncoding, error: nil)
if let text2 = String(contentsOfFile: path, encoding: NSUTF8StringEncoding, error: nil){
println(text2)
}