在Swift中逐行读取文本文件?

刚开始学习Swift,我已经从我的代码中读取文本文件,App显示整个文本文件的内容。 我怎样才能一行一行地显示和多次调用该行?

TextFile.txt包含以下内容。

  1. 香蕉
  2. 苹果
  3. 草莓
  4. 蓝莓
  5. 黑茶

以下是目前有什么..

if let path = NSBundle.mainBundle().pathForResource("TextFile", ofType: "txt"){ var data = String(contentsOfFile:path, encoding: NSUTF8StringEncoding, error: nil) if let content = (data){ TextView.text = content } 

如果还有其他方法,请告诉我。 非常感激

Swift 3.0

 if let path = Bundle.main.path(forResource: "TextFile", ofType: "txt") { do { let data = try String(contentsOfFile: path, encoding: .utf8) let myStrings = data.components(separatedBy: .newlines) TextView.text = myStrings.joined(separator: ", ") } catch { print(error) } } 

variablesmyStrings应该是数据的每一行。

使用的代码是: 在用Obj-C编写的iOS SDK中逐行读取文件,并使用NSString

检查以前版本的Swift的编辑历史logging。

更新Swift 2.0 / Xcode 7.2

  do { if let path = NSBundle.mainBundle().pathForResource("TextFile", ofType: "txt"){ let data = try String(contentsOfFile:path, encoding: NSUTF8StringEncoding) let myStrings = data.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet()) print(myStrings) } } catch let err as NSError { //do sth with Error print(err) } 

另外值得一提的是,这段代码读取了项目文件夹中的一个文件(因为使用了pathForResource),而不是在例如设备的文档文件夹中

您可能确实想要一次读取整个文件。 我敢打赌,这是非常小的。

但是接下来你想把结果string拆分成一个数组,然后把数组的内容分布到不同的UI元素,比如表格单元格。

一个简单的例子:

  var x: String = "abc\ndef" var y = x.componentsSeparatedByString("\n") // y is now a [String]: ["abc", "def"]