Java Scanner"倒带"

Tom*_*Tom 3 java parsing

我正在使用Java Scanner对象来解析文本文件.我需要扫描部分文件两次(出于性能原因,我不必暂时存储其内容).

因此,有没有办法将扫描仪"倒回"到特定的文件位置?

或者,有没有办法克隆扫描仪,以便我可以独立使用每个实例(即他们不会移动彼此的文件位置指针)?

非常感谢,托马斯

编辑:

扫描文件一次并直接处理它显然总是可行的,但会在我们现有的代码库中产生显着的额外复杂性,因此需要扫描两次相同的文件部分.

简而言之:该文件包含数千个逻辑项并处理其中的一些,我需要从项目开始存储在项目末尾的信息.

Hov*_*els 5

只需在需要时创建一个新的Scanner实例.即使你可以克隆它也没有必要或好处."重新缠绕"相同 - 如果需要重新读取文件,只需创建一个新的扫描仪.我会探索存储你需要的位,因为我相信这会更有效率.

顺便说一句:考虑告诉我们更多关于您的要求以及任何限制背后的原因,因为这些信息可以帮助我们为您提供更好的答案.

  • @PeterLawrey:对于`Scanner`,没有`seek`,只有`skip`,但`skip`将与`Pattern`一起使用.`Scanner`不是`Reader`. (3认同)
  • 根据需要使用跳过或搜索. (2认同)