Извинете за ненужността на този въпрос, но имам уеб приложение, където искам да изпратя потенциално голям файл до сървъра и да го накарам да анализира формата. Използвам рамката 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? Има ли по-добри начини за анализиране на този файл? Основната ми грижа е, че искам да позволя на файловете да бъдат много големи, за да мога да изчистя буфер в даден момент и да не запазя целия файл в паметта.