Wie erfasse ich die Daten, die von einer aus einem Stapel ausgegebenen EXE-Datei zurückgegeben wurden?

Ich habe eine Batch-Datei, die von einem Java-Programm aufgerufen werden muss. Die Batch-Datei ruft wiederum eine EXE auf. Das EXE-Programm gibt Daten zurück, die ich verarbeiten möchte. Wenn die EXE-Datei Daten an die Konsole druckt, können diese wie folgt erfasst werden. Aber wenn die EXE istzurückkehren Daten nach der Fertigstellung können nicht erfasst werden.

ProcessBuilder pb = new ProcessBuilder("foo.bat");
Process p = pb.start();
int exitValue = p.waitFor();
BufferedReader reader;

// System.out.println("Exit Value" + exitValue);
if (exitValue == 0) {
    reader = new BufferedReader(new InputStreamReader(p
            .getInputStream()));
} else {
    reader = new BufferedReader(new InputStreamReader(p
            .getErrorStream()));
}

StringBuffer sb = new StringBuffer();
String temp = reader.readLine();
while (temp != null) {
    sb.append(temp);
    temp = reader.readLine();
}

reader.close();
System.out.println(sb.toString());

Wie muss ich die von der aus einer Batch-Datei ausgeführten EXE-Datei zurückgegebenen Daten erfassen?

Die EXE ist im Grunde ein C-Programm. Wenn ich das C-Programm aufrufe, gibt die main-Methode die Daten zurück, die ich verarbeiten möchte.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage