我使用2个扫描仪来读取文件。一个抓住了我为什么会收到此扫描仪错误?
int a = fileScanner.nextInt();
fileScanner.nextLine();
int b = fileScanner.nextInt();
fileScanner.nextLine();
第一和第二线(因为我需要他们对别的东西),那么我抢文件,一行行的其余部分,并发送一条线,不同的类。
while(fileScanner.hasNextLine()){
line = fileScanner.nextLine();
NameRecord current = new NameRecord (line, startYear, decades);
names.add(current);
}
(忽略此代码的其余部分) 然后我走线的第一个字,则其余的是数字我需要在一个数组来存储,所以我使用此:
Scanner lineSc = new Scanner(line);
dataName = lineSc.next();
for (int i = 0; i < decades; i++) {
yearData[i] = Integer.parseInt(lineSc.next());
}
lineSc.close();
但最后我得到这个错误:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at NameRecord.<init>(NameRecord.java:36)
at Names.<init>(Names.java:34)
at NameSurfer.simpleTest(NameSurfer.java:176)
at NameSurfer.main(NameSurfer.java:202)
我在做什么错?
看来你正在为你的lineSc扫描器调用next,即使它没有元素了。你应该总是用hasNext检查==> for(int i = 0; i
alfcope