我正在尝试将我在应用程序中收集的一些字符串输出到文本文件中。
文本文件将始终存在于我的项目中,如下所示:
我试图用新的(多行)字符串覆盖文件中的任何内容:
func writeFile(){
let theFile: FileHandle? = FileHandle(forWritingAtPath: "./MyFiles/file.txt")
if theFile != nil { // This is always nil!!!
let data = ("Some text\nline 2\nline3\n" as String).data(using: String.Encoding.utf8)
// Write it to the file
theFile?.write(data!)
// Close the file
theFile?.closeFile()
}
else {
print("Writing failed.")
}
} // End file writing
但是,FileHandler始终返回nil。我怀疑这是因为我提供的路径和/或文件名不正确?
我一直在谷歌搜索和堆栈溢出几个小时了......仍然不知道如何解决这个问题。如何指定正确的位置和文件?
您不能在应用程序沙箱之外写入文件。每个 iOS 应用程序都有单独的目录 Document、Library、tmp 来存储数据。
func writeFile(){
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentationDirectory,.userDomainMask,true)
let theFile: FileHandle? = FileHandle(forWritingAtPath: "\(documentsPath)/MyFiles/file.txt")
if theFile != nil { // This is always nil!!!
let data = ("Some text\nline 2\nline3\n" as String).data(using: String.Encoding.utf8)
// Write it to the file
theFile?.write(data!)
// Close the file
theFile?.closeFile()
}
else {
print("Writing failed.")
}
} // End file writing
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句