gpt4 book ai didi

swift - 写入日志文件似乎覆盖了以前的保存

转载 作者:行者123 更新时间:2023-11-28 12:57:33 29 4
gpt4 key购买 nike

作为练习,我正在尝试编写一个将字符串记录到文本文件的日志记录类。我有我的应用程序可以写入和读取文件。但是,如果我尝试多次登录,它似乎只会获取最新的日志。

尝试

写作

private let file = "logfile.txt"

func write(text: String) {

let path = getDocumentsDirectory()

do {
try text.writeToFile(path, atomically: false, encoding: NSUTF8StringEncoding)
}
catch let error {
print("error: \n \(error)")
}
}

阅读

func read() {

let path = getDocumentsDirectory()

do {
let text2 = try String(contentsOfFile: path, encoding: NSUTF8StringEncoding)

print("From Log: \n \(text2)")
}
catch let error {
print("error: \n \(error)")
}


}

func getDocumentsDirectory() -> String {
guard let dir : NSString = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first else {
return ""
}
let documentsDirectory : String = dir.stringByAppendingPathComponent(file)
return documentsDirectory
}

结果

当我尝试读取我的文件时,我只保存了最后一行。

问题

如果我的目标是无休止地将新日志附加到文件,并批量读取日志文件。我需要对我的代码进行哪些更改?


更多详情:

我在应用程序加载时写入文件:

Logger.shared.write("instance one writes")
Logger.shared.write("instance one writes again")
Logger.shared.write("instance one writes yet again")

然后尝试阅读:

Logger.shared.read()

输出:

From Log:
instance one writes yet again

最佳答案

Foundation 提供的writeToFile(_:atomically:encoding:) 方法替换给定文件的内容。有几种附加到文件的方法:

关于swift - 写入日志文件似乎覆盖了以前的保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34646776/

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