我想将String写入文件。如果文件不存在,则应创建该文件。 如果是,则应追加字符串。
我试过了:
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()
}
}
到目前为止,文件似乎无法创建,因为它每次都会跳转到createFile。我做错了什么?
答案 0 :(得分:2)
使用(path?.path)!
代替(path?.absoluteString)!
。