eher eine Nachfrage…
Bei Ausführung der folgenden Programmzeilen wird der
eigegebenen
Buchtaben während der Eingabe nicht angezeigt. Auch nachdem
ich drücke passiert noch nichts.
Erst nachdem der erste Buchstabe NACH dem
eingegeben
wird liest Java die vorangegangene Eingabe von s1 und gleich
auch das erste Zeichen von s2 (ohne das irgendwas von der
Eingabe angezeigt wird).
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
String s1=br.readLine();
String s2=br.readLine();
Was ich nicht ganz verstehe: Du liest doch zwei Zeilen direkt
nacheinander ein, dann ist es doch klar, dass da nach dem ersten
„Enter“ erstmal nichts passiert, weil ja noch auf die zweite
gewartet wird…
Bekommst du denn die erste Zeile direkt nach der ersten Eingabe
zurückgeliefert? Gib die doch einfach mal testweise direkt danach
aus…
Dieses Problem besteht nur unter Windows (einmal mit jdk1.2 /
Win98 und einmal mit jdk1.1.6 Win95 auf zwei verschiedenen
Computern probiert, ist also vermutlich keine Datei
zerschossen).
Wenn da was kaputt wäre, dann würde auch relativ wenig
funktionieren. Die API liegt in einem JAR-Archiv, also einer
ZIP-Datei. Darüber werden Check-Summen gebildet, die verhindern,
dass da irgendwas beschädigt wird. Wenn Java also läuft, dann ist
auch die API in Ordnung…
Unter Unix läuft das Programm einwandfrei! Weißt Du wo hier
der Fehler stecken könnte???
Das ist allerdings merkwürdig. Da ich aber noch nicht ganz
verstanden habe, was du genau erreichen möchtest, also was du mit
„einwandfrei“ genau meinst, hilft mir das auch nicht unbedingt
weiter…
Der Unterschied könnte aber vielleicht auch einfach in der
Anzeige der Eingabe liegen. Wenn diese unter Windows nicht
implizit angezeigt wird - warum denn nicht? Wichtig ist ja nur,
dass alles, was du eingibst, auch im Programm landet. Ausgeben
kannst du es ja immer noch…
Ansonsten kannst du ja auch die Zeichen direkt einlesen (ohne
BufferedReader) und dann jeweils ausgeben. Bei einem „Return“
weißt du dann eben, dass das Eingabeende erreicht ist…
Für wirklich interaktive Kommandozeilenprogramme ist Java ohnehin
nicht die beste Sprache, weil es z.B. keine Bibliothek für
Textpositionierung (à-la curses) gibt…
Vielleicht fällt ja noch jemand anderem was dazu ein, ansonsten
wäre es vielleicht ganz gut zu wissen, ob du eher Wert darauf
legst, dass die Eingabe angezeigt wird oder darauf, dass sie
prompt im Programm landet…
Gruß,
Stefan 