将文件或文件读取器与扫描仪一起使用?

2022-09-03 15:51:04

免责声明:我已经浏览了我能找到的所有问题,但没有一个回答这个确切的问题。如果您找到一个,请指给我并礼貌。

因此,Oracle I/O 教程使用 Scanner 打开一个文本文件,如下所示:

new Scanner(BufferedReader(FileReader("xanadu.txt")));

但是Javadoc使用Scanner打开一个文本文件,如下所示:

new Scanner(new File("myNumbers"));

使用更简单的方法会很好,特别是当我有一个小文件并且可以忍受较小的缓冲区时,但我也看到人们说,当你直接打开一个文件时,你不能关闭它。如果是这样的话,为什么在官方文档中使用这个成语?

编辑:我也看过,但这似乎是两个世界中最糟糕的。new Scanner(FileReader("blah.txt"));

编辑:我不是想开始一场关于是否使用扫描仪的辩论。我有一个关于如何使用扫描仪的问题。谢谢。


答案 1

您可以查看 Scanner 的实现(JDK 随源代码一起提供)。在 Scanner 类中也有一个 close() 方法。从本质上讲,您列出的两种方法对于读取小文件的用例是相同的 - 只是不要忘记在最后调用close()。


答案 2

该类没有方法,因为它只抽象磁盘文件。它不是文件的输入流,因此无需关闭任何内容。Fileclose()