我从包含几千行纯文本的文件中读入myArray(Swift的本机)。
myData = String.stringWithContentsOfFile(myPath, encoding: NSUTF8StringEncoding, error: nil)
var myArray = myData.componentsSeparatedByString("\n")
我更改了myArray中的一些文本(没有粘贴任何此代码)。
现在,我想将myArray的更新内容写入新文件。我已经尝试过了..
let myArray2 = myArray as NSArray
myArray2.writeToFile(myPath, atomically: false)
但是文件内容随后为plist格式。
在Swift(或桥接的Swift)中,是否有任何方法可以将文本字符串数组写入文件(或循环遍历数组并将每个数组项附加到文件?
您需要将数组缩减为一个字符串:
var output = reduce(array, "") { (existing, toAppend) in
if existing.isEmpty {
return toAppend
}
else {
return "\(existing)\n\(toAppend)"
}
}
output.writeToFile(...)
reduce
方法获取一个集合并将其全部合并为一个实例。它需要一个初始实例并关闭,以将集合的所有元素合并到该原始实例中。
我的示例将一个空字符串作为其初始实例。然后,关闭检查现有输出是否为空。如果是,则只需要返回要追加的文本,否则,它使用String Interpolation返回现有输出和新元素,并在两者之间使用换行符。
使用Swift中的各种语法糖功能,整个缩减量可以简化为:
var output = reduce(array, "") { $0.isEmpty ? $1 : "\($0)\n\($1)" }
正如drewag在接受的帖子中指出的,您可以从数组中构建一个字符串,然后对该字符串使用writeToFile
方法。
使用Swift 5
Swift提供了许多遍历数组的方法。您可以遍历字符串并一一打印到文本文件。像这样: