Я читаю со стандартного ввода, используя следующий цикл:Как я могу проверить с помощью stdin, если нажата комбинация клавиш Ctrl + d?
Scanner stdin = new Scanner(System.in);
while (stdin.hasNextLine() && stdin.nextLine() != null) {
String line = stdin.nextLine();
if (!(line.contains("#"))) {
input.add(line);
}
if (line.contentEquals("q")) {
break;
}
}
Теперь это легко прекратить, если я просто введите q
и нажмите Enter, однако я должен прекратить программу, когда пользователь нажимает Ctrl + d
на новой линии. Я не могу заставить это работать, когда я нажимаю Ctrl + d
, ничего не происходит.
Если я изменяю условие while на 'while (stdin.next()! = Null)' Я получаю исключение 'NoSuchElementException' на' Ctrl + d' – Alk
Есть ли что-то еще, что вы предлагаете, я могу использовать для чтения из стандартного вход вместо сканера? – Alk
Так что я должен в основном попытаться поймать это исключение и предположить, что когда это произойдет, весь вход был предоставлен? – Alk