Прошу прощения за нубизм этого вопроса, но у меня есть веб-приложение, в котором я хочу отправить потенциально большой файл на сервер, и он проанализирует формат. Я использую платформу 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 правильный способ сделать это? Есть ли лучшие способы разбора этого файла? Меня больше всего беспокоит то, что я хочу, чтобы файлы были очень большими, чтобы в какой-то момент я мог очистить буфер и не хранить весь файл в памяти.