首页 > 解决方案 > 你能解释一下扫描仪的工作原理吗?它打印所有内容吗?

问题描述

我试图了解扫描仪的工作原理。因此,我绑定到扫描文本文档并仅遍历某些单词,但它不起作用,它只是打印了所有内容。所以,我用一个只打印数字的循环替换它,但它甚至从未打印它,它打印了文本文档中的所有单词,即使我没有为此编写打印语句。扫描仪会自动打印所有内容吗?为什么我的 for 循环也被跳过了?

Scanner read = new Scanner(new File("Test.txt"));
read.close();
for(int i = 0; i < 5; i++) {
    System.out.println(i);
}

标签: java

解决方案


请将您的代码修改为:

通用代码:

Scanner reader = new Scanner(new File("Test.txt"));
while (reader.hasNext()){
   String str = reader.nextLine();
   System.out.println(str);
}

reader.close();

对于读取整数:

Scanner reader = new Scanner(new File("Test.txt"));
while (reader.hasNext()){
  int i = reader.nextInt();
  System.out.println(i);
}

reader.close();

当 Scanner 与文本文件一起使用时,它的行为有点像带有集合的迭代器。hasNext 方法检测文件的结尾,因此可以使用一个简单的 while 循环来读取文件的数据。


推荐阅读