我试图让Java使用hasNext()hasNextLine()和while循环来计算文本文件中的行数,尽管我似乎遇到了一些麻烦。该程序将连续运行,我相信它会陷入无限循环。如果有人可以解释这个问题并给我解决的办法,我将不胜感激。

这是程序正在读取的文件(hurcdata2.txt,保存在程序目录中):

1980 Aug    945 100 Allen
1983 Aug    962 100 Alicia
1984 Sep    949 100 Diana
1985 Jul    1002    65  Bob
1985 Aug    987 80  Danny
1985 Sep    959 100 Elena
1985 Sep    942 90  Gloria
1985 Oct    971 75  Juan
1985 Nov    967 85  Kate


这是我的代码:

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
    ...
}

09-26 03:11