Извините за бестактность этого вопроса, но у меня есть веб-приложение, в котором я хочу отправить потенциально большой файл на сервер и заставить его проанализировать формат. Я использую платформу Play20 и новичок в Scala.
Например, если у меня есть csv, я бы хотел разделить каждую строку на «,» и в конечном итоге создать List[List[String]]
с каждым полем.
В настоящее время я думаю, что лучший способ сделать это с помощью 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? Есть ли лучшие способы разбора этого файла? Меня больше всего беспокоит то, что я хочу, чтобы файлы были очень большими, чтобы в какой-то момент я мог очистить буфер и не хранить весь файл в памяти.