Мой код не дает мне такого исключения

1
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();

линия. Может кто-нибудь мне помочь?

Теги:
nosuchelementexception

1 ответ

0
Лучший ответ

вы должны проверить → 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();
  } 
  }    

}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню