我正在使用Java Scanner对象来解析文本文件。
我需要扫描文件的一部分两次(出于性能原因,这样我就不必暂时存储它的内容)。
因此,是否有一种方法可以将Scanner“倒回”到特定的文件位置?
或者,有没有一种方法可以克隆扫描仪,以便我可以独立使用每个实例(即它们不会移动彼此的文件位置指针)?
非常感谢, Thomas
编辑: 显然,只扫描文件一次并直接处理它总是可行的,但会在我们现有的代码库中创建重要的额外复杂性,因此需要扫描同一部分文件两次。
简而言之:文件包含数千个逻辑项,为了处理其中的一些项,我需要从项目开头获取存储在项目末尾的信息。
因此,是否有一种方法可以将Scanner“倒回”到特定的文件位置?
或者,有没有一种方法可以克隆扫描仪,以便我可以独立使用每个实例(即它们不会移动彼此的文件位置指针)?
非常感谢, Thomas
编辑: 显然,只扫描文件一次并直接处理它总是可行的,但会在我们现有的代码库中创建重要的额外复杂性,因此需要扫描同一部分文件两次。
简而言之:文件包含数千个逻辑项,为了处理其中的一些项,我需要从项目开头获取存储在项目末尾的信息。
RandomAccessFile
或NIO。http://docs.oracle.com/javase/tutorial/essential/io/rafs.html - Brian Roach