ciao a tutti,
il mio problema è gestire l'I/O tra la mia applicazione Java e un altro programma(sempre in Java).
Il programma viene lanciato con la seguente riga di codice:

codice:
...
Process p = 
Runtime.getRuntime().exec(pathsdk + "/javaw -cp " + pathfile + 
" " + nomeclasse);
...
Poi prendo 2 stream bufferizzati, uno per leggere e uno per scrivere:

codice:
BufferedOutputStream bos = new BufferedOutputStream(
p.getOutputStream());
BufferedInputStream is = new BufferedInputStream(
p.getInputStream());
Fatto questo con is.read() in un ciclo while riesco a vedere l'output, però quando il programma richiede anche input non so come capire se lo sta chiedendo e mandargli quello che l'utente scrive.
In pseudo-codice ho pensato a qualcosa tipo:

Esegui il programma
Mostra output // questo riesco a farlo
SE sta chiedendo input // non so farlo
ALLORA chiedi input all'utente e invia al programma i dati // so farlo
SE il programma è terminato //non so farlo
ALLORA vai a Fine esegui il programma // è un while
ALTRIMENTI vai a Esegui il programma // è un while
Fine esegui il programma

Si potrebbe definire meglio l'algoritmo, però questo è un problema tecnico, come sapere se il programma sta chiedendo input e se è terminato?

e grazie