Чтение больших файлов в Scala

Я использую io.Source.fromFile и getLines для чтения текстового файла. Я обнаружил, что метод size для Iterator возвращает Int, что означает, что файл не должен содержать более 2^31 строк. Я знаю, что могу решить эту проблему, прибегнув к java.io.Scanner. Однако есть ли способ Scala обойти это?


person fehorak    schedule 02.04.2020    source источник
comment
Если у вас такой большой файл, вам следует обратить внимание на решения для потоковой передачи, такие как: fs2, Monix (observables), AkkaStreams, Zio (ZStream) и т. д.   -  person Luis Miguel Mejía Suárez    schedule 02.04.2020
comment
Поскольку строки внутри, вероятно, хранятся в массиве из 2 ^ 31 записей, не лучше ли вам использовать импорт в базу данных?   -  person Joop Eggen    schedule 02.04.2020
comment
Если вы просто хотите перебрать все строки, вы, вероятно, все еще можете использовать Iterator, если вы не вызываете такие методы, как size, или не конвертируете в коллекцию или массив.   -  person Jasper-M    schedule 02.04.2020


Ответы (1)


или вы могли бы накатить свой собственный итератор поверх сопоставленного файла, любезно предоставленного интерфейсом сопоставления файлов Java? https://www.informit.com/articles/article.aspx?p=2955144&seqNum=5

person mtk    schedule 03.04.2020