所以,我在使用 Scanner 类从文件中读取内容时遇到了一个有趣的问题。基本上,我试图从目录中读取解析应用程序生成的几个输出文件,以计算一些准确度指标。
基本上,我的代码只是遍历目录中的每个文件,然后用扫描仪打开它们以处理内容。出于某种原因,扫描仪没有读取一些文件(全部 UTF-8 编码)。即使文件不是空的,scanner.hasNextLine() 也会在第一次调用时返回 false(我打开调试器并观察到这一点)。我每次都直接使用文件对象初始化扫描仪(文件对象已成功创建)。IE:
File file = new File(pathName);
...
Scanner scanner = new Scanner(file);
我尝试了几件事,最终能够通过以下方式初始化扫描仪来解决此问题:
Scanner scanner = new Scanner(new FileInputStream(file));
虽然我很高兴解决了这个问题,但我仍然很好奇之前可能发生了什么导致这个问题。有任何想法吗?非常感谢!