Das scheint ein einfaches Problem zu sein, aber ich kann es nicht lösen. Ich muss Ausgabe (von einer Variablen) auf die Konsole drucken, bis der Benutzer eine beliebige Taste drückt. Der Druck wird in einer while-Schleife als solche durchgeführt:Druckausgabe, bis die Taste gedrückt wird
int i;
while((i=input.read())!=-1){
System.out.print((char)i);
}
input.close();
Das Problem ist, dass der Eingangsstrom nie erreicht sein Ende wartet nur für mehr Zeichen zu kommen, so dass die Ausführung von mehr Code zu blockieren. Es wird für den Benutzer ziemlich offensichtlich sein, wann die Ausgabe zu stoppen ist, daher bin ich damit einverstanden, dem Benutzer diese Verantwortung zu geben. Es spielt keine Rolle, wie der Benutzer der Anwendung sagt, dass er aufhören soll, solange es schnell ist (zB Drücken von Leerzeichen, Eingabe oder irgendein anderer spezifischer Schlüssel ist in Ordnung).
Vielen Dank im Voraus,
vikarjramun
Dieser Code funktioniert möglicherweise nicht korrekt, es sei denn, Sie Delcare hasUserPressedKey als flüchtig oder verwenden AtomicBoolean anstelle von einfachen boolean – SergGr
@SergGr guten Punkt. Ich werde die Änderung machen – Chris
Danke, ich werde das ausprobieren – vikarjramun