小编And*_*ner的帖子

在Scala中修改大文件

我试图修改Scala中的大型PostScript文件(有些大小只有1GB).该文件是一组批次,每批包含代表批号,页数等的代码.

我需要:

  1. 在文件中搜索批处理代码(始终以文件中的同一行开头)
  2. 计算下一批代码之前的页数
  3. 修改批次代码以包括每批中的页数.
  4. 将新文件保存在其他位置.

我当前的解决方案使用两个迭代器(iterAiterB),从中创建Source.fromFile("file.ps").getLines.第一个迭代器(iterA)遍历一个while循环到批处理代码的开头(iterB.next每次都被调用).iterB然后继续搜索,直到下一个批处理代码(或文件末尾),计算它经过的页面数量.然后,它更新批次代码iterA的位置,重复该过程.

这似乎非Scala-like,我仍然没有设计好将这些更改保存到新文件的方法.

解决这个问题的好方法是什么?我应该完全抛弃迭代器吗?我最好喜欢这样做而不必将整个输入或输出同时存入内存.

谢谢!

file-io iterator scala postscript scala-2.9

6
推荐指数
1
解决办法
941
查看次数

标签 统计

file-io ×1

iterator ×1

postscript ×1

scala ×1

scala-2.9 ×1