如果存在,则快速附加到文件,否则创建文件

Gin*_*o89 6 file swift

我想将字符串写入文件。如果该文件不存在,则应创建它。如果是,则应附加字符串。

我试过:

    let data = text.data(using: String.Encoding.utf8)
    let filemgr = FileManager.default
    let path = filemgr.urls(for: FileManager.SearchPathDirectory.documentDirectory, in: FileManager.SearchPathDomainMask.userDomainMask).last?.appendingPathComponent("out.txt")
    if !filemgr.fileExists(atPath: (path?.absoluteString)!) {
        filemgr.createFile(atPath: (path?.absoluteString)!, contents: data, attributes: nil)
    } else {
        var file = FileHandle(forReadingAtPath: (path?.absoluteString)!)
        let databuffer = String(describing: file?.readDataToEndOfFile())
        file = FileHandle(forWritingAtPath: (path?.absoluteString)!)
        if file != nil {

            file?.seek(toFileOffset: 10)
            file?.write(data!)
            file?.closeFile()
        }
    }
Run Code Online (Sandbox Code Playgroud)

到目前为止,该文件似乎还没有被创建,因为它每次都跳转到 createFile。我究竟做错了什么?

Cha*_*han 6

使用(path?.path)!代替(path?.absoluteString)!