Мне нужно создать простой интерфейс для оператора для проверки некоторых строк. Думаю, самый простой - сделать это в консоли.
Следующие шаги:
enter
, если есть ошибка, он обновляет уже напечатанную строку и нажимает enter
. Важно, чтобы оператор не вводил строку снова, потому что она может быть длинной.Можно ли реализовать это с помощью простой консоли на java? Я пытаюсь использовать потоки 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();
не действует.Насколько я понимаю, это просто игра между строкой и вводом пользователя. В этом примере используется ввод для строки пользователя.
import java.io.*;
import java.text.*;
import java.util.*;
public class MyClass {
private static final Scanner scanner = new Scanner(System.in);
public static void main(String[] args) throws Exception{
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(System.out));
String s = "My string to verify";
System.out.println(s);
//Do what you need with s;
//edit it
String s2 = scanner.nextLine();
bufferedWriter.write(s2);
bufferedWriter.close();
scanner.close();
}
}
Может, я не понял. Мне нужно напечатать некоторую строку на консоли, чтобы иметь возможность редактировать ее вручную в консоли, а не в коде, и читать отредактированную строку с консоли.