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

时间:2014-11-19 00:36:21

标签: java file-io while-loop

我正在尝试让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();
    }
}

1 个答案:

答案 0 :(得分:2)

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

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