如何从 Swift 保存在文档目录中的文本中读取字符串?
How to read string from Text which saved in Documents Directory with Swift?
我有一个 Test.txt 文件保存在应用程序的文档目录中。 Test.txt文件中每一行一一保存了几个名字,像这样:
Tom
Jack
Jerry
Jennifer
Lynn
我想将这些名称添加到数组中,如下所示:
var nameList = ["Tom", "Jack", "Jerry", "Jennifer", "Lynn"]
有什么办法让它工作吗?
我有以下代码,但它会将名称视为一个字符串。
if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
let archiveURL = dir.appendingPathComponent("Test").appendingPathExtension("txt")
do {
try Data(textView.text.utf8).write(to: archiveURL)
}
catch {
print("error")
}
do {
namesPool = try! [String(contentsOf: archiveURL, encoding: .utf8)]
}
}
以上代码将得到如下数组:
var nameList = ["Tom\nJack\nJerry\nJennifer\nLynn\n"]
如有任何建议,我们将不胜感激。
您错过了最后一步,请使用以下方式将其分开:
let namesTogether = try! String(contentsOf: archiveURL, encoding: .utf8)
namesPool = namesTogether.components(separatedBy: "\n")
Swift 4
// String with multiple names separated by end of line
let nameStr = try! String(contentsOf: archiveURL, encoding: .utf8)
// array of Substrings
let nameArray = nameStr.split(separator: "\n")
// first name as String
let name = String(nameArray[0])
有关处理字符串的更多信息:Strings Cheat Sheet
我有一个 Test.txt 文件保存在应用程序的文档目录中。 Test.txt文件中每一行一一保存了几个名字,像这样:
Tom
Jack
Jerry
Jennifer
Lynn
我想将这些名称添加到数组中,如下所示:
var nameList = ["Tom", "Jack", "Jerry", "Jennifer", "Lynn"]
有什么办法让它工作吗?
我有以下代码,但它会将名称视为一个字符串。
if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
let archiveURL = dir.appendingPathComponent("Test").appendingPathExtension("txt")
do {
try Data(textView.text.utf8).write(to: archiveURL)
}
catch {
print("error")
}
do {
namesPool = try! [String(contentsOf: archiveURL, encoding: .utf8)]
}
}
以上代码将得到如下数组:
var nameList = ["Tom\nJack\nJerry\nJennifer\nLynn\n"]
如有任何建议,我们将不胜感激。
您错过了最后一步,请使用以下方式将其分开:
let namesTogether = try! String(contentsOf: archiveURL, encoding: .utf8)
namesPool = namesTogether.components(separatedBy: "\n")
Swift 4
// String with multiple names separated by end of line
let nameStr = try! String(contentsOf: archiveURL, encoding: .utf8)
// array of Substrings
let nameArray = nameStr.split(separator: "\n")
// first name as String
let name = String(nameArray[0])
有关处理字符串的更多信息:Strings Cheat Sheet