【发布时间】:2014-02-16 22:52:54
【问题描述】:
我有一个方法可以将扫描仪返回到具有输入行的文本文件(我无法正确显示它,但是像 - 嗨(新行)这个 (\n) 是 (\n) 我(\n))。然后在main中,我使用扫描仪计算输入的行数,然后重置扫描仪。后来我使用扫描仪将输入的行放入一个数组中(我不想要一个 ArrayList),但是 Java 说“java.util.NoSuchElementException: No line found”...
while(scanner.hasNextLine()){
numOfStrings++;
scanner.nextLine();
}
scanner.reset();
String[] stringsOfInput = new String[numOfStrings];
for(int i = 0; i < numOfStrings; i++){
String s = scanner.nextLine(); //returns "No line found" error message
stringsOfInput[i] = s;
}
有谁知道如何解决这个问题,让它做它应该做的?
【问题讨论】:
-
reset()没有按照您的想法执行 - 来自 JavaDoc - 重置扫描仪会丢弃其所有可能已被 @987654324 调用更改的显式状态信息@、useLocale(java.util.Locale)或useRadix(int)。 重置Scanner无法回退流。 -
我想你以后需要另一个扫描仪来保存这些行,reset 不会从头开始文件