Java читает стандартный вывод из внешней программы с использованием inputtream

Я пытаюсь разработать класс, который читает стандартный вывод внешней программы (используя экземпляр Process, Runtime.getRuntime (). Exec (cmdLine, env, dir)). Программа принимает пользовательские данные во время процесса и не будет работать до тех пор, пока не будет введен правильный ввод; это, кажется, вызывает проблему в способе, которым я пытаюсь прочитать его вывод:

    egm.execute(); // run external the program with specified arguments
    BufferedInputStream stdout = new BufferedInputStream(egm.getInputStream());
    BufferedInputStream stderr = new BufferedInputStream(egm.getErrorStream());
    BufferedOutputStream stdin = new BufferedOutputStream(egm.getOutputStream());



    int c; //standard output input stream
    int e; //standadr error input stream

    while((c=stdout.read()) != -1) //<-- the Java class stops here, waiting for input? 
    {
        egm.processStdOutStream((char)c); 
    }
    while((e=stderr.read()) != -1)
    {
        egm.processStdErrStream((char)e);
    }
    //...

Как я могу это исправить, чтобы программа принимала правильные данные и продолжала? Любая помощь в решении этой проблемы будет отличной!

Ответы на вопрос(5)

Ваш ответ на вопрос