Für ein konsolenbasiertes Terminal&Chat-Programm muss ich die Eingabe des benutzers zeichenweise einlesen. Ich habe es schon mit den verschiedensten Subclasses von InputStream probiert und habe immer das gleiche Problem: Die eingegebenen Zeichen erscheinen immer erst dann am Bildschirm, wenn die ENTER-Taste gedrückt wurde...
Hier der Code:
(DataInputStream con ist stdin also Tastatureingabe, char ch ist das eingelesene Zeichen, PrintWriter out ist die Klasse welche das Zeichen übers Netzwerk sendet)
while(con.available()>0)
{
ch=(char)con.read();
System.out.flush();
if(ch==9) //TAB-gedrückt -Abbruch
break;
out.print(ch);
out.flush();
}
Daraus, dass das TAB-Zeichen auch erst registriert wird, wenn ENTER gedrückt wurde, kann man sehen, dass die Zeichen mit read() erst dann eingelesen werden, wenn ENTER gedrückt wurde. Hat irgendjemand eine Idee wie ich gleich an meine Zeichen komme??