Swift将大文件读入数组

时间:2018-03-19 03:57:04

标签: swift

我试图将文件读入Playground中的字符串数组

let path = XCPlaygroundSharedDataDirectoryURL.appendingPathComponent("test.txt")

let data = try Data(contentsOf: path!)
let returnData = String(data: data, encoding: .utf8)

var matrixData = returnData!.components(separatedBy: "\n").first!
let rows = Int ( matrixData.components(separatedBy: " ").first! )!
let columns = Int( matrixData.components(separatedBy: " ")[1] )!


let realData = returnData!.components(separatedBy: "\n").dropFirst().joined()
realData.count
let inputString = realData.components(separatedBy: " ")

输入文件中的前两个数字表示它是A * B的网格。

"真实数据"表示数组已经开始。

对于小输入文件(4 * 4),realdata.count显示16(正确)

对于大输入文件(1000 * 1000),realdata.count为999001,错误。

为什么?

是否与字符串数组有限制?

1 个答案:

答案 0 :(得分:0)

为了实现这一点,我删除了\ n 的输入字符串,因为我不使用它们,然后从那里开始。

唯一奇怪的问题是字符串末尾有一个额外的字符,必须是输入文件末尾的\ n。

pandas

// inputString现在是正确的长度