2011-01-28 2 views
4

У меня есть простая клиентская программа сервера, в котором у меня есть проблемы с моим меню:Есть ли эквивалент Java для getchar?

do { 
    System.out.println("---- MENU ----\n"); 
    System.out.println("(drv) - List drives"); 
    System.out.println("(pwd) - Current path"); 
    System.out.println("(ls) - List files in a directory"); 
    System.out.println("(quit) - Quit program\n"); 
    System.out.print("Enter a command: "); 
    command = scanner.nextLine(); 
    sendMessage(command); 
    message = (String)in.readObject(); 
    System.out.println(message); 
    System.in.read(); 
}while(!command.equals("quit"));` 

Я хочу, чтобы распечатать результат на экране, подождите, пока я не нажимать Enter, а затем снова открыть меню, поэтому я использую System.in.read(). Моя проблема заключается в том, что он работает в первый раз, но если я выбираю другой вариант он ничего не печатает:

---- МЕНЮ ----

(DRV) - Список диски
(PWD) - Текущий путь
(LS) - список файлов в директории
(бросить курить) - Quit программы

Введите команду: PWD
D: \ Documents и Settings \ asname \ workspace_java \ сервер

---- МЕНЮ ----

(DRV) - Список диски
(PWD) - Текущий путь
(LS) - список файлов в директории
(бросить курить) - Выход из программы

Введите команду: Ls

есть ли способ в Java похож на getchar, что я мог бы использовать вместо этого?

ответ

4

Просто добавьте scanner.nextLine(); после System.out.println(message); так ждет

+0

не работает для меня :( – Kobe

+0

@vBx его обновить. Пожалуйста, попробуйте –

+0

спасибо, его работы сейчас :) – Kobe