2014-01-04 2 views
0

Я пытаюсь получить входные данные из класса Scanner, но каждый раз, когда я его вызываю, он сбрасывает всю программу. Когда вы пытаетесь поймать исключение и распечатать сообщение, ничего не появляется, поэтому я даже не уверен, в чем корень проблемы. Некоторая фоновая информация заключается в том, что этот класс вызывается основным методом, который также имеет сканер, который был запущен, но закрыт до вызова метода этого класса.Java - сканер не запрашивает ввода, а затем сбой

public class UserHandler { 
static Scanner userInput1 = new Scanner(System.in); 

static void addInterface() throws IOException, FileNotFoundException{ 
    boolean addMore = true; 
    while(addMore){ 
     System.out.println("Please enter restaurant name: "); 
     String name = userInput1.next(); 
     if(!FileHandler.containsName(name)){ 
      System.out.println("Name already exists!"); 
     }else{ 
      String[] tags = new String[5]; 
      System.out.print("\nPlease enter tags seperated by spaces: "); 
      for(int i = 0; i < tags.length; i++){ 
       if(userInput1.hasNext()){ 
        tags[i] = userInput1.next(); 
       } 
       else{ 
        break; 
       } 
      } 
      FileHandler.addName(name,tags); 
     } 
    } 
} 
} 

Я пробовал несколько раз и не смог воспроизвести эту проблему. Я предполагаю, что это как-то связано с синтаксисом или с чем-то, что просто не называется должным образом. В любом случае я потратил немало времени на его исправление, но безрезультатно.

+2

Можем ли мы увидеть ваш 'main' метод? –

+1

опубликовать основной класс, а также –

+0

Я уверен, что он не сбой, но генерирует исключение, которое поставляется со стеком. Прочтите его и опубликуйте. –

ответ

1

Я полагаю, что вы получите доступ к командной строке от первого звонка до сканера (System.in), то закрыть его, и когда вы пытаетесь получить доступ к нему во второй раз, вы получаете IllegalStateException ,

Попробуйте использовать тот же экземпляр сканера (System.in) в обеих ситуациях.

Для получения дополнительной информации обратитесь к http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html

Смежные вопросы