Swift-将数组写入文本文件

问题描述 投票:9回答:4

我从包含几千行纯文本的文件中读入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)中,是否有任何方法可以将文本字符串数组写入文件(或循环遍历数组并将每个数组项附加到文件?

arrays file text swift output
4个回答
2
投票

您需要将数组缩减为一个字符串:

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)" }

20
投票

正如drewag在接受的帖子中指出的,您可以从数组中构建一个字符串,然后对该字符串使用writeToFile方法。


0
投票

使用Swift 5


-1
投票

Swift提供了许多遍历数组的方法。您可以遍历字符串并一一打印到文本文件。像这样:

© www.soinside.com 2019 - 2024. All rights reserved.