我正在使用Java Scanner对象来解析文本文件。 我需要扫描部分文件两次(出于性能原因,我不必暂时存储其内容)。
因此,有没有办法将扫描仪“倒回”到特定的文件位置?
或者,有没有办法克隆扫描仪,以便我可以独立使用每个实例(即它们不会相互移动文件位置指针)?
非常感谢, 托马斯
修改
仅扫描文件一次并直接处理它显然总是可行的,但会在我们现有的代码库中产生显着的额外复杂性,因此需要扫描两次相同的文件部分。
简而言之:该文件包含数千个逻辑项并处理其中的一些,我需要从项目开始存储在项目末尾的信息。
答案 0 :(得分:5)
只需在需要时创建一个新的Scanner实例。即使你可以克隆它也没有必要或好处。 “重新缠绕”相同 - 如果需要重新读取文件,只需创建一个新的扫描仪。我会探索存储你需要的位,因为我确信这会更有效。
顺便说一句:考虑告诉我们更多有关您的要求以及任何限制背后的原因,因为这些信息可以帮助我们为您提供更好的答案。
答案 1 :(得分:0)
从这里被盗:http://answers.yahoo.com/question/index?qid=20081017131128AAUcIow
Java的扫描仪没有文件“倒带”方法,但关闭扫描仪并重新打开它可以获得相同的效果