Swift:读取和写入文件

时间:2015-02-25 07:04:25

标签: ios swift ios8 ios8.1

使用此解决方案有效,但如果我打开文件,则其中没有文字。我错过了什么吗?

    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)

1 个答案:

答案 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)
}