嗨我有一个相当简单的程序,但我无法理解为什么我在运行时有一个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();
}
}
答案 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(每次看同一个)