gpt4 book ai didi

swift3 - 在swift 3中写入文本文件

转载 作者:行者123 更新时间:2023-12-04 14:55:32 24 4
gpt4 key购买 nike

我正在尝试写入用户通过 UITextField 输入的数据到文本文件。我可以通过我在下面编写的代码成功地做到这一点。但是,当我尝试保存更多数据时,它将用正在保存的新数据替换文本文件中的现有数据。例如,如果我保存字符串“hello world”,然后保存另一个字符串“再见”。我只会在文本文件中看到字符串 'bye'。有没有办法可以修改我的代码,这样我就可以在纺织品的一行上看到“hello world”,而在另一行上看到“bye”。

@IBAction func btnclicked(_ sender: Any) {        
self.savedata(value: answer.text!)
}

func savedata (value: String){
let fileName = "Test"
let DocumentDirURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)

let fileURL = DocumentDirURL.appendingPathComponent(fileName).appendingPathExtension("txt")
print("FilePath: \(fileURL.path)")

let writeString = NSString(string: answer.text!)
do {
// Write to the file
try writeString.write(to: fileURL, atomically: true, encoding: String.Encoding.utf8.rawValue)
} catch let error as NSError {
print("Failed writing to URL: \(fileURL), Error: " + error.localizedDescription)
}
}

最佳答案

这是一个使用 FIleHandler 的示例, 适应 swift 3 ,来自 here (当然,您应该添加我的示例中缺少的所有错误处理代码):

let dir = FileManager.default.urls(for: FileManager.SearchPathDirectory.cachesDirectory, in: FileManager.SearchPathDomainMask.userDomainMask).first!
let fileurl = dir.appendingPathComponent("log.txt")

let string = "\(NSDate())\n"
let data = string.data(using: .utf8, allowLossyConversion: false)!

if FileManager.default.fileExists(atPath: fileurl.path) {
if let fileHandle = try? FileHandle(forUpdating: fileurl) {
fileHandle.seekToEndOfFile()
fileHandle.write(data)
fileHandle.closeFile()
}
} else {
try! data.write(to: fileurl, options: Data.WritingOptions.atomic)
}

关于swift3 - 在swift 3中写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42365486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com