Java estándar de lectura de salida de un programa externo usando inputstream

Estoy tratando de desarrollar una clase que lea la salida estándar de un programa externo (usando una instancia de Process, Runtime.getRuntime (). Exec (cmdLine, env, dir)). El programa toma las entradas del usuario durante el proceso y no continuará hasta que se proporcione una entrada válida; Esto parece estar causando un problema en la forma en que estoy tratando de leer su salida:

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

¿Cómo puedo solucionar esto para que el programa reciba una entrada válida y continúe? Cualquier ayuda para resolver este problema será genial!

Respuestas a la pregunta(5)

Su respuesta a la pregunta