Мне нужно создать простой интерфейс для оператора для проверки некоторых строк.Я полагаю, что самый простой - это сделать это в консоли.
Есть следующие шаги:
- Строка выводится на консоль
- Оператор проверяет это.Если строка в порядке, оператор нажимает
enter
, в случае ошибки он обновляет уже напечатанную строку и нажимает enter
.Важно, чтобы оператор больше не вводил строку, потому что она может быть длинной. - Оператор видит новую строку и т. Д.
Возможно ли реализовать это с помощью простой консоли вДжава?Я пытаюсь использовать PipedOutputStream
и PipedInputStream
потоки, подобные этому
public static void main(String[] args) throws Exception{
PipedOutputStream pipeOut = new PipedOutputStream();
PipedInputStream pipeIn = new PipedInputStream(pipeOut);
System.setIn(pipeIn);
System.out.print("My string to verify");
BufferedReader br = new BufferedReader(new InputStreamReader(pipeIn));
String verified = br.readLine();
}
Есть две проблемы:
- В терминальном курсоре невозможно переместить его в уже напечатанную строку для редактирования
- , даже если я нажимаю
enter
, курсор перемещается на следующую строку, кажется, что br.readLine();
не имеет никакого эффекта.