Java lendo a saída padrão de um programa externo usando inputstream

Eu estou tentando desenvolver uma classe que lê a saída padrão de um programa externo (usando uma instância do processo, Runtime.getRuntime (). Exec (cmdLine, env, dir)). O programa usa entradas do usuário durante o processo e não prosseguirá até que uma entrada válida seja fornecida; isso parece estar causando um problema na maneira como estou tentando ler sua saída:

    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);
    }
    //...

Como posso corrigir isso para que o programa receba uma entrada válida e continue? Qualquer ajuda para resolver este problema será ótima!

questionAnswers(5)

yourAnswerToTheQuestion