Я пытаюсь изменить большой файл PostScript в Scala (некоторые из них имеют размер до 1 ГБ). Файл представляет собой группу пакетов, каждая из которых содержит код, который представляет номер пакета, количество страниц и т. Д.
Мне нужно:
В моем текущем решении используются два итератора ( iterA
и iterB
), созданные из Source.fromFile ("file.ps"). GetLines
. Первый итератор ( iterA
) проходит в цикле while до начала пакетного кода (при этом каждый раз также вызывается iterB.next
). iterB
затем продолжает поиск до следующего кода пакета (или до конца файла), подсчитывая количество страниц, которые он проходит по мере продвижения. Затем он обновляет пакетный код в позиции iterA
, и процесс повторяется.
Это очень не похоже на Scala, и я до сих пор не разработал хороший способ сохранить эти изменения в новый файл.
Как лучше всего подойти к этой проблеме? Должен ли я полностью отказаться от итераторов? Я бы предпочел сделать это без необходимости иметь сразу весь ввод или вывод в память.
Спасибо!