gpt4 book ai didi

swift - 快速保存多行文本

转载 作者:行者123 更新时间:2023-11-30 11:16:21 24 4
gpt4 key购买 nike

我正在尝试将多行文本存储在 iPhone 上的本地文本文件中。我有代码将创建一个文本文档,将数据写入该文档并从此文档中读取数据。

但是,如果我尝试向此文档添加更多文本,它只会存储最近添加的文本行。

我用于创建、写入和读取本文档中的文本的代码如下:

//Storing user rewards
let fileName = "Rewards"
let DocumentDirURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
let fileURL = DocumentDirURL.appendingPathComponent(fileName).appendingPathExtension("txt")

//print("File Path: \(fileURL.path)")

let writeString = rewardLBL.text
do {
//writing to the file
try writeString?.write(to: fileURL, atomically: true, encoding: String.Encoding.utf8)
} catch let error as NSError{
print("failed to write")
print(error)
}

var readString = ""
do {
readString = try String(contentsOf: fileURL)
}catch let error as NSError{
print("failed to readFile")
print(error)
}

print(readString)

我需要它来允许存储多个文本条目,而不仅仅是最近写入的数据。

我怀疑,由于代码位于“viewDidLoadi()”方法内部,因此它不断地重新创建相同的文档,因此总是创建一个新版本来覆盖旧的 Rewards.txt 文档。

非常感谢任何帮助,谢谢。

最佳答案

由于您使用的是 write,因此它将覆盖之前写入的内容。

try writeString?.write(to: fileURL, atomically: true, encoding: String.Encoding.utf8)

您需要将文本行附加到文件中,这不会覆盖以前写入的行。像这样的事情:

writeString.data(using: String.Encoding.utf8)?.write(to: fileURL, options: Data.WritingOptions.withoutOverwriting)

关于swift - 快速保存多行文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51706731/

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