0

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

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();
}

}

4

2 回答 2

7

你从不打电话inputFile.nextInt()- 你只是在打电话hasNextInt(),这实际上并没有提前文件中的位置。你可能想要:

while (inputFile.hasNextInt())
{
    arraySize++;
    System.out.println(arraySize);
    int value = inputFile.nextInt();
    // Do something with the value?
}
于 2012-08-03T07:12:50.150 回答
0

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

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

于 2012-08-03T07:15:02.817 回答