我是CS学生的第一年,我正在完成一项任务,但我遇到了这个不会停止的循环......
import java.io.*;
import java.util.Scanner;
class Ass1{
public static void main(String[] args){
int i=0;
try{
File myfile = new File ("./ages.txt");
Scanner scanner = new Scanner(myfile);
while(scanner.hasNext()){
i++;
}
System.out.println("ages.txt contains " + i + " lines");
scanner.close();
}catch(IOException e){}
}
}
并且ages.txt文件如下所示(它们都是在单独的行中,但不知怎的,我只能在这里显示它们:()
200 201 202 203 205 205 207 208 210 213 214 217 218 219 219 221 225 226 227 227 231 232 238 238 240 309 313 314
我正在尝试从文本文件中读取所有行,最后打印它包含的行数。
提前感谢您的帮助。
答案 0 :(得分:3)
您需要致电scanner.next();
如果你在计算行数,最好分别使用scanner.hasNextLine()
和scanner.nextLine()
。
您编写的方式,scanner.hastNext()
将始终评估为true,因为扫描仪从未真正离开它的初始位置,因此始终会有hasNext()
答案 1 :(得分:0)
那是因为你没有在while循环中调用nextInt()方法,这意味着Scanner永远不会前进到下一个标记。