Lesezugriff auf Consolenprogramm schlägt fehl

Status
Nicht offen für weitere Antworten.

tito

Mitglied
Hallo,

ich versuche gerade über Java mit einem in C++ geschriebenen Konsolenprogramm zu kommunizieren. Dazu rufe ich zunächst das Programm auf und erstelle die zur Kommunikation nötigen Streams:

Java:
process        = Runtime.getRuntime().exec(<Programm>);
BuffReader     = new BufferedReader(new InputStreamReader(process.getInputStream()));
WriteConsole   = new PrintWriter(process.getOutputStream(),true);

Schreiben klappt auch wunderbar mit

Java:
WriteConsole.println(<Text>);

,allerdings hängt sich mein Programm auf, wenn ich lesen möchte über:

Java:
while((line = BuffReader.readLine()) != null) {
        System.out.println(line);
}

Was mache ich da falsch?
 
S

SlaterB

Gast
vielleicht schreibt das Programm nichts oder zumindest kein \n - Zeilenumbruch fürs readLine()
lies testweise einzelne Zeichen/ Bytes, kommt da was an?
 

tito

Mitglied
Naja, es kommt am Anfang was an, aber ab dem Zeitpunkt, ab dem ich etwas vom Java-Programm aus sende, kommt nichts mehr an...
Wie lese ich einzelne Zeichen aus? Mit read() bekomme ich ja nur nen int zurück.
 

tito

Mitglied
es gibt genug Tutorials, Lehrbücher, Beispiele usw. zu Streams und Reader

Ja klar - haste natürlich Recht - es gibt auch noch Google -- da habe ich auch schon richtig lange gesucht - davor stelle ich keine Frage. Mein Problem (siehe erstes Posting) ist ja schon etwas merkwürdig, so dass mir die Standardfälle nicht so recht helfen -> nach denen habe ich das ja entwickelt. Also falls jemand so etwas auch schon mal hatte, wäre ich für ne Antwort sehr dankbar.
Trotzdem dankeschön für den Openbook-Link -- da schaue ich gleich mal rein.
 

Marco13

Top Contributor
Ob das so einfach ist, da bin ich mir nicht so sicher (wer von denen, die geantwortet haben, hat das schonmal gemacht?)
 

Marco13

Top Contributor
Das bezog sich nur darauf, dass es da einige Stolpersteine gibt... Z.B. müssen, soweit ich mich erinnere, damit so ein Programm weiterlaufen kann, sowohl der InputStream als auch der ErrorStream vollständig leergelesen sein....
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben