我一定遗漏了一些关于各种 Scanner 方法如何工作的明显信息,但这真的没有任何意义:
此代码导致无限循环:
Scanner valueScan = new Scanner(line);
valueScan.useDelimiter(",");
while(valueScan.hasNext())
{
count++;
}
虽然此代码有效:
Scanner valueScan = new Scanner(line);
valueScan.useDelimiter(",");
while(valueScan.hasNext())
{
System.out.println("value token: " + valueScan.next());
cellCount++;
}
这是来自 Oracle 的文档,我不确定它是否适用或它的含义:“此方法可能会在等待输入扫描时阻塞,即使之前调用 hasNext() 返回 true。”(http://docs.oracle .com/javase/1.5.0/docs/api/java/util/Scanner.html#next%28%29)