Разбор файла с помощью BodyParser в Scala Play20 с новыми строками

Прошу прощения за нубизм этого вопроса, но у меня есть веб-приложение, в котором я хочу отправить потенциально большой файл на сервер, и он проанализирует формат. Я использую платформу Play20 и новичок в Scala.

Например, если у меня есть csv, я бы хотел разделить каждую строку на «,» и в конечном итоге создать Список[Список[Строка]]с каждым полем.

В настоящее время я думаю, что лучший способ сделать это — использовать BodyParser (но я могу ошибаться). Мой код выглядит примерно так:

Iteratee.fold[String, List[List[String]]]() {
  (result, chunk) =>
    result = chunk.splitByNewLine.splitByDelimiter // Psuedocode
}

Мой первый вопрос заключается в том, как поступить в ситуации, подобной той, что показана ниже, когда фрагмент был разделен посередине строки:

Chunk 1:
1,2,3,4\n
5,6

Chunk 2:
7,8\n
9,10,11,12\n

Мой второй вопрос заключается в том, как написать свой собственный BodyParser правильный способ сделать это? Есть ли лучшие способы разбора этого файла? Меня больше всего беспокоит то, что я хочу, чтобы файлы были очень большими, чтобы в какой-то момент я мог очистить буфер и не хранить весь файл в памяти.

6
задан Jeff Wu 14 June 2012 в 00:10
поделиться