public static void getBooks()throws FileNotFoundException{
Scanner input = new Scanner(bookFile);
String line = input.nextLine();
int bookNum = 1;
while (input.hasNextLine()) {
bookNum += 1;
line = input.nextLine();
}
input.close();
input = new Scanner(bookFile);
line = input.nextLine();
bookarray = new String[3][bookNum];
for (int y = 0; y < bookNum; y++){
bookarray [0][y] = line.substring(0,10);
bookarray [1][y] = line.substring(11,15);
bookarray [2][y] = line.substring(17,18);
line = input.nextLine();
}
}
这段代码给了我这个错误:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1585)
at BookInventory1.getBooks(BookInventory1.java:64)
at BookInventory1.main(BookInventory1.java:15)
ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): [../../../src/share/back/util.c:838]
指着最后一个
line = input.nextLine();
线。任何人都可以帮助我吗?
答案 0 :(得分:0)
你应该检查 - &gt; input.hasNext()
查看本教程scanner example或阅读javadoc或结帐next ()的具体javadoc
NoSuchElementException - 如果没有更多令牌可用
例如:
public static void getBooks()throws FileNotFoundException{
Scanner input = new Scanner(bookFile);
String line = input.nextLine();
int bookNum = 1;
while (input.hasNextLine()) {
bookNum += 1;
line = input.nextLine();
}
input.close();
input = new Scanner(bookFile);
if(scanner.hasNextLine(){
line = input.nextLine();
bookarray = new String[3][bookNum];
for (int y = 0; y < bookNum; y++){
bookarray [0][y] = line.substring(0,10);
bookarray [1][y] = line.substring(11,15);
bookarray [2][y] = line.substring(17,18);
if(!line.hasNextLine()){break;}
line = input.nextLine();
}
}
}