为什么这会产生无限循环?

时间:2012-12-19 22:41:01

标签: infinite-loop

有人能解释为什么这会造成无限循环吗? hurcdata2中有大约30个straing值。我不明白这是什么问题。

import java.util.Scanner;
import java.io.File;
import java.io.IOException;
public class Hurricanes2
{
public static void main(String[] args) throws IOException
{
    int i = 0;
    int hurricaneNumber = 0;
    String hurricanes = "";
    File fileName = new File("hurcdata2.txt");
    Scanner inFile = new Scanner(fileName);
    while (inFile.hasNext())
    {
        hurricaneNumber++;
    }
}
}

2 个答案:

答案 0 :(得分:1)

while - 循环中,您应该调用inFile.nextLine()以使其处理文件中的每一行。

  while (inFile.hasNext()) {
     hurricaneNumber++;
     String line = inFile.nextLine();
  }

答案 1 :(得分:1)

如@ElectricLlama的评论中所述,您需要提前文件指针,以获取下一个标记,否则hasNext()将始终为真。在Java中的文件I / O上检查此question和此tutorial