Обновите уже напечатанное значение до терминала и прочитайте его в Java - PullRequest
0 голосов
/ 19 декабря 2018

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

Есть следующие шаги:

  • Строка выводится на консоль
  • Оператор проверяет это.Если строка в порядке, оператор нажимает 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(); не имеет никакого эффекта.

1 Ответ

0 голосов
/ 19 декабря 2018

Из того, что я понимаю. Это просто игра между строкой и пользовательским вводом. Этот пример использует ввод для строки пользователя

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();

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...