Запись в OutputStream - PullRequest
       41

Запись в OutputStream

0 голосов
/ 10 июля 2020

Я пытаюсь взаимодействовать с приложением командной строки, используя OutputStream. Выполнение команды для приложения:

Process pr = rt.exec(
    executor.getTool()
            + execProcess.getToolSuffixes().get(execProcess.getSystem().getName())
            + " "
            + executor.nextStep());

Приложение запускается и ожидает некоторого ввода, поэтому я пытаюсь выполнить запись на выходе процесса (передать другие аргументы).

PrintStream out = new PrintStream(pr.getOutputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));

while (in.read() != -1) {
    String s = in.readLine();
    logger.debug("input read:{}", s);
    if (s.contains("delimiter:")) {
        String write =executor.nextStep();
        logger.debug(write);
        out.println(write);
        out.flush();
    }
}
out.close();
returnCode = pr.waitFor();

Условие if проходит и из логов кажется, что работает. Приложение создает файл, как и ожидалось, он должен содержать переданные аргументы, но он пуст (работает при запуске вручную)

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