Java 从文件读取时尝试使用.hasNext()时的无限循环(?)

Java 从文件读取时尝试使用.hasNext()时的无限循环(?),java,file-io,while-loop,Java,File Io,While Loop,我试图让Java使用hasNext(),hasNextLine(),以及while循环来计算文本文件中的行数,尽管我似乎遇到了一些问题。该程序将持续运行,我相信它被困在一个无限循环中。如果有人能解释这个问题并给我一个可能的解决方案,我将不胜感激 以下是程序读取的文件(hurcata2.txt,保存在程序目录中): 这是我的代码: import java.util.Scanner; import java.io.*; public class HurricaneData { pub

我试图让Java使用
hasNext()
hasNextLine()
,以及while循环来计算文本文件中的行数,尽管我似乎遇到了一些问题。该程序将持续运行,我相信它被困在一个无限循环中。如果有人能解释这个问题并给我一个可能的解决方案,我将不胜感激

以下是程序读取的文件(hurcata2.txt,保存在程序目录中):

这是我的代码:

import java.util.Scanner;
import java.io.*;
public class HurricaneData
    {
    public static void main(String[] args) throws IOException
    {
        File hurricaneData = new File("TestText.txt");
        Scanner inFileHD = new Scanner(hurricaneData);
        int n = 0; //represents number of blocks of data
        while( inFileHD.hasNextLine() )
        {  
           n++;
        }
        System.out.println(n + " block of data");
        inFileHD.close();
    }
}

您需要使用扫描仪的输入,否则
inFileHD.hasNextLine()
将始终为
true

while (inFileHD.hasNextLine()) {
    inFileHD.nextLine(); // add this
    ...
}

谢谢你的快速解释。我以为它会自动消耗数据。哎呀。
while (inFileHD.hasNextLine()) {
    inFileHD.nextLine(); // add this
    ...
}