Читать файл /URL построчно в Swift

Я пытаюсь прочитать файл, указанный в NSURL, и загрузить его в массив, элементы которого разделены символом новой строки ---- +: = 1 =: + ----.

Вот как я это сделал до сих пор:

\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
}

Как мне это сделать в Swift?

Несколько замечаний о файлах, из которых я читаю: Все файлы состоят из коротких (<255 символов) строк, разделенных либо var aStreamReader = new StreamReader(from_file_or_url) while aStreamReader.hasNextLine == true { currentline = aStreamReader.nextLine() list.addItem(currentline) } или \n. Длина файлов варьируется от ~ 100 строк до более 50 миллионов строк. Они могут содержать европейские символы и /или символы с акцентами.

66 голосов | спросил Matt 5 J000000Saturday14 2014, 03:04:53

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132