相关疑难解决方法(0)

从文本文件中读取和写入字符串

我需要从文本文件中读取和写入数据,但我无法弄清楚如何.

我在Swift的iBook中找到了这个示例代码,但我仍然不知道如何编写或读取数据.

import Cocoa

class DataImporter
{
    /*
    DataImporter is a class to import data from an external file.
    The class is assumed to take a non-trivial amount of time to initialize.
    */
    var fileName = "data.txt"
    // the DataImporter class would provide data importing functionality here
}

class DataManager
{
    @lazy var importer = DataImporter()
    var data = String[]()
    // the DataManager class would provide data management functionality here
}

let manager = DataManager()
manager.data += "Some data"
manager.data …
Run Code Online (Sandbox Code Playgroud)

file-io swift

273
推荐指数
7
解决办法
38万
查看次数

在Swift中逐行读取文件/ URL

我正在尝试读取一个给定的文件NSURL并将其加载到一个数组中,其中的项目由换行符分隔\n.

这是我到目前为止的方式:

var possList: NSString? = NSString.stringWithContentsOfURL(filePath.URL) as? NSString
if var list = possList {
    list = list.componentsSeparatedByString("\n") as NSString[]
    return list
}
else {
    //return empty list
}
Run Code Online (Sandbox Code Playgroud)

出于几个原因,我对此并不满意.一,我正在处理从几千字节到几百MB的文件.你可以想象,使用这么大的字符串是缓慢而笨拙的.其次,这会在执行时冻结UI - 再次,不好.

我已经考虑在一个单独的线程中运行此代码,但我一直遇到麻烦,此外,它仍然无法解决处理大字符串的问题.

我想做的是下面的伪代码:

var aStreamReader = new StreamReader(from_file_or_url)
while aStreamReader.hasNextLine == true {
    currentline = aStreamReader.nextLine()
    list.addItem(currentline)
}
Run Code Online (Sandbox Code Playgroud)

我如何在Swift中实现这一目标?

关于我正在阅读的文件的一些注意事项:所有文件都由短或(\n或255个字符)字符串组成,由或者分隔\r\n.文件的长度范围从~100行到超过5000万行.它们可能包含欧洲字符和/或带重音的字符.

macos file input stream swift

72
推荐指数
3
解决办法
4万
查看次数

使用Swift读取本地文件的简单方法?

我正在尝试学习新的Swift编程语言.它看起来很棒,但我很难做一些像读取本地.txt文件内容这样简单的事情.

我已经尝试了几个我可以通过Google找到的例子,但是它们给出了编译错误,比如这里的答案:从文本文件中读取和写入数据 如果我稍微调整一下代码,它可以工作,但只能从内部的特殊位置读取该项目.

为什么用Swift读取.txt文件就像使用Ruby一样简单?我将如何阅读位于的文件内容~/file.txt

日Thnx

swift

26
推荐指数
3
解决办法
7万
查看次数

在iOS SDK中逐行读取文件

我有一个texfile如下:

line1
line2
line3
line4
line5
 ....
Run Code Online (Sandbox Code Playgroud)

我想从文件中读取两个字符串数组,以便line1, line3, line 5,...进入array1line 2, line 4, line 6,...进入array2.数组的每个元素都存储一行.

sdk xcode ios

2
推荐指数
1
解决办法
8008
查看次数

为什么Bundle.main.path(forResource:fileName,ofType:"txt")总是返回nil?

我想逐行阅读文本文件,并使用此处显示的示例在iOS屏幕上显示它.

制作textView.text可选项是我能够readDataFromFile运行的唯一方式.当我单击load该函数运行但总是返回nil.我认为这意味着找不到文件.

出于测试目的,我在Xcode中创建了文本文件.我也尝试将它保存在桌面和项目文件夹中.无论哪种方式,它都可以从项目导航器中读取.我还尝试使用TextEdit创建文件,因为应用程序最终需要读取在Xcode外部创建的文本文件.

如果有人可以解释为什么永远不会找到文本文件,我是否感激不已,为了让项目找到它还是需要做些什么,或者nil由于我的方式而导致读取函数由于其他原因而返回实施了它.谢谢.

编辑(2)

感谢您的反馈.作为回应,我做了四个小的代码更改,允许将文本文件内容写入textView.更改包括:从文件名中删除文件扩展名,添加文件名数组,String而不是String?从代码中返回readDataFromFile和重写UITextView.这解决了我所知道的问题.

这是修改后的代码

import UIKit

class ViewController: UIViewController {

var textView = UITextView()
var arrayOfStrings: [String]?
var fileNameWithExtension               = "textFile.txt"
let arrayOfFileNames                    = ["textFile1.txt", "textFile2.txt", "textFile3.txt", "textFile4.txt", "textFile5.txt"]

var fileName                            = String()

override func viewDidLoad() {
    super.viewDidLoad()

    //    remove comment in the next statement to test files named in ArrayOfFileNames    
    //    fileNameWithExtension               = …
Run Code Online (Sandbox Code Playgroud)

uitextview ios swift

0
推荐指数
1
解决办法
4770
查看次数

标签 统计

swift ×4

ios ×2

file ×1

file-io ×1

input ×1

macos ×1

sdk ×1

stream ×1

uitextview ×1

xcode ×1