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:
Poi prendo 2 stream bufferizzati, uno per leggere e uno per scrivere:codice:... Process p = Runtime.getRuntime().exec(pathsdk + "/javaw -cp " + pathfile + " " + nomeclasse); ...
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.codice:BufferedOutputStream bos = new BufferedOutputStream( p.getOutputStream()); BufferedInputStream is = new BufferedInputStream( p.getInputStream());
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