Il programma qui sotto stampa ogni carattere scritto sullo standard in, ma solo dopo che è stata scritta una nuova riga (almeno sul mio sistema!).Perché non possiamo leggere un carattere alla volta da System.in?
public class Test {
public static void main(String[] args) throws java.io.IOException {
int c;
while ((c = System.in.read()) != -1)
System.out.print((char) c);
}
}
Questo impedisce alle persone di scrivere cose come "Premere un tasto per continuare" e le forze di qualcosa come "Premere Invio per continuare."
- Qual è il motivo alla base di questo?
- È una limitazione di Java?
- Questo comportamento dipende dal sistema (sono su Ubuntu)? Come funziona su Mac? Finestre?
- Dipende dal terminale specifico in cui eseguo l'applicazione? (Per me si comporta come questo in Eclipse e in gnome-terminal)
- C'è una soluzione?
vedere la mia risposta in http://stackoverflow.com/questions/1864076/equivalent-function-to-cs-getch-in-java/10118990#10118990 –