Langsame Textausgabe

meisterfisch

Mitglied
Hallo,
habe folgende Methode, die einen Text(der übergeben wird) zeitverzögert Buchstabe für Buchstabe schreibt.
Code:
 public static void SchreibeTextLangsam(String text) throws InterruptedException{
       
        for (char zeichen:text.toCharArray()) {
        System.out.print(zeichen);
        Thread.sleep(80);
    }
    }
   
   
   
}


Das funktioniert aber nur, wenn Thread.sleep(300) oder mit größerer Zahl. Warum geht es nicht mit
Thread.sleep(80)?
Zur Info : Die Zeile wird nach Zeitverzögerung auf einmal geschrieben, nicht Buchstabe für Buchstabe.

Vielleicht hat ja jemand eine Idee. Danke im voraus.
 

httpdigest

Top Contributor
Probiere mal folgendes:
Java:
System.out.print(zeichen);
System.out.flush();
Thread.sleep(80);
stdout ist defaultmäßig gepuffert.
 

httpdigest

Top Contributor
Gib vielleicht mal ein paar mehr Informationen, insbesondere, welches OS und welches JRE? Arbeitest du eventuell auch per virtueller Maschine (Hypervisor) oder wählst dich per SSH/Putty in ein Remotesystem ein oder benutzt vielleicht sogar einen Raspberry Pi? :)
Scheint ja, als könnte das Terminal die Geschwindigkeit, mit der neue Zeichen reinprasseln, gar nicht verarbeiten.
Ich habe auf Windows 10, JDK 10 absolut keine Probleme. Auch nicht mit sleep(10).
 

meisterfisch

Mitglied
Hallo,

danke nochmals für die schnelle Antwort.
als OS habe ich Ubuntu 17.10,.
Wenn ich die Java-Version im Terminal abfrage bekommen ich

Code:
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-0ubuntu0.17.10.1-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

Aber gut zu wissen, dass es an dem OS liegen kann oder am benutzen Java.

Benutze ich denn die richitge Version von Java?
 

Ähnliche Java Themen

Neue Themen


Oben