Ciao a tutti, ho un problema nel prelevare l'output generato da un programma esterno eseguit con il getRuntime.exec() da una funzione Java.
Riassumo brevemente:
codice:
1. try {
2. Process startUP = Runtime.getRuntime().exec(cmdline);
3. InputStreamReader isr = new InputStreamReader(startUP.getInputStream());
4. BufferedReader br = new BufferedReader(isr);
5.
6. String linea = null;
7. linea=br.readLine();
8. while(linea!=null) {
9. try {
10. System.out.println(linea);
11. linea=br.readLine();
12.
13. //qui devo fare il parsing della riga
14.
15. } catch (IOException e) {
16. e.printStackTrace();
17. }
18. }
19. } catch (IOException e)
20. {
21. System.err.println("ioexception starting process! " + e);
22. }
Questo è quello che sostanzialmente contiene la funzione, il mio problema è che alla riga 13 con un semplice programma di prova il cui output è un semplice "Ciao mondo" posso processare la riga (se la visualizzo 100 volte non ci sono problemi per 100 volte ottengo la stessa riga).
Se il programma che lancio è quello che poi mi servirà, alla riga 13 ottengo un bel null dentro alla mia "linea"
L'output del programma che mi servirà è questo:
(0002,0001) OB #2 [00\01] File Meta Information Version
(0002,0002) UI #20 [1.2.840.10008.1.3.10] Media Storage SOP Class UID
(0002,0003) UI #54 [1.2.40.0.13.1.10.8.132.161.2814081.200809081443384 13.1] Me
(0002,0010) UI #20 [1.2.840.10008.1.2.1] Transfer Syntax UID
...
E' solo una piccola parte perchè mi genera circa 1700 righe.
Qualcuno capisce cosa sbaglio?
Grazie a tutti.