我在这里找到了一些编码: Java: Printing from a file
Scanner fRead = new Scanner(new File(targetFileName));
while (fRead.hasNextLine())
System.out.println(fRead.nextLine());
我的问题:
答案 0 :(得分:2)
当垃圾收集器完成其工作时,文件最终将关闭,但是您不确定何时会发生。在这种情况下,最好的办法是在try-catch-finally结构中与扫描仪进行交互,然后在finally块中将其关闭。
try {
scanner = new Scanner(file);
// read contents
} catch (Exception ex) {
// handle problems
} finally {
// close the scanner
scan.close();
}
正如注释中所建议的那样,从Java 7开始,可以使用新引入的try-with-resources构造简化代码,如下所示:
try (Scanner scanner = new Scanner(file)) {
//read file contents
} catch (Exception e) {
// handle exceptions
}
在这种情况下,您不需要显式关闭扫描仪,因为Java会自动关闭扫描仪。