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();
линия. Может кто-нибудь мне помочь?
вы должны проверить → input.hasNext()
Проверьте этот пример сканера учебника или прочитайте javadoc или проверьте конкретный 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();
}
}
}