用Java读取整数文本文件的无限循环

时间:2012-08-03 07:11:32

标签: java while-loop infinite-loop

嗨我有一个相当简单的程序,但我无法理解为什么我在运行时有一个inifite循环。我正在读取的文件中有10个整数。我正在使用Eclipse Juno,并且控制台中的输出无限地从281363开始计数。我怎样才能解决这个问题?提前谢谢。

import java.util.*;
import java.io.*;

public class TestScoreAnalyzer
{
public static void main(String[] args) throws FileNotFoundException
{
        int arraySize = 0;

        File file = new File("C:\\Users\\Quinn\\workspace\\CPS121\\src\\
                             additionalAssignments\\scoresSample.txt");
    Scanner inputFile = new Scanner(file);

        while(inputFile.hasNextInt())
    {
    arraySize++;
    System.out.println(arraySize);
    }

    inputFile.close();
}

}

2 个答案:

答案 0 :(得分:7)

你永远不会打电话给inputFile.nextInt() - 你只是调用hasNextInt(),这实际上不会提升文件中的位置。你可能想要:

while (inputFile.hasNextInt())
{
    arraySize++;
    System.out.println(arraySize);
    int value = inputFile.nextInt();
    // Do something with the value?
}

答案 1 :(得分:0)

http://docs.oracle.com/javase/6/docs/api/java/util/Scanner.html#hasNextInt()

扫描仪没有继续前进 - 它只是说下一个是int(每次看同一个)