Java auf Enter abwarten

Ben_cool

Inaktiv
ID: 284432
L
30 August 2007
2.417
258
Ich wollte mal Fragen wie es umsetzen kann, das zuerst nach einem Enter das Programm weitergeführt wird.

Z.b.:
Code:
System.out.print("Das ist Text1!");
// Auf  Enter warten
System.out.println("Das ist der Text2!");

Ich hoffe ihr versteht was ich meine.

Gruß
Ben_cool
 
Naja dann könnte ich ja auch die Scanner Klasse nutzen.

Also:
Code:
import java.util.Scanner;

Scanner in = new Scanner(System.in);

System.out.print("Das ist Text1!");
in.next();
System.out.println("Das ist der Text2!");
Habe aber gedacht das es vielleicht ein wenig unsauber ist.
 
System.in.read() reicht schon, denn den Input bekommt man auch erst, wenn Enter gedrückt wurde.
 
Gibt es zwischen System.in.read() und in.next() einen unterschied, außer das in.next() weniger Quelltext "verbraucht"? :D

@edit: Natürlich muss in.nextLine() verwendet werden, sonst bringt es gar nichts.
 
Zuletzt bearbeitet:
ja macht es, weil in.read() nicht funktioniert, das funktioniert nur wenn du System.in vorher in einer Variable gespeichert hast oder einen static import von java.lang.System.in gemacht hast.
Zudem wüsste ein anderer Entwickler nicht von welchem InputStream du liest, das könnte auch eine Datei sein usw.
 
Code:
[LEFT]import java.util.Scanner;

Scanner xyz = new Scanner(System.in);[/LEFT]
Das reicht doch schon, mehr muss nicht gemacht werden.
Außerdem ist die Klasse sowieso schon importiert, weil ich sie immer zum einlesen nutze. :mrgreen:

Aber Performance mäßig ist es kein unterschied, richtig?
 
Neija über einen Scanner zu Lesen ist schon ein deutlicher Unterschied als direkt die Bytes des InputStreams zu lesen.
Viel wichtiger finde ich die Frage, die zu selten gestellt wird, kommt es bei dir wirklich auf die Performance an, ob er sagen wir vllt 5% schneller läuft?

Viel zu oft wird sinnlos einfach immer gefragt, ob dies oder das schneller ist, selbst wenn es für die Anwendung unwichtig ist. Wenn es zu langsam ist wird man es merken, und wenn man von vornerein schon an eine gute Perfomance denken muss, dann wird es bestimmt keine kleine Konsolenapplikation sein.
 
Und für den JVM gilt dann sowieso noch die Regel, dass es sehr schwer ist Optimierungen zu messen, da die JVM während der Laufzeit mit dem Hotspot-Compiler dauerhaft die Software optimiert, von daher weiß man nie, wann es fertig optimiert wurde oder wann mal Rechenzeit während dem Benchmark an den Compiler oder Garbage Collector abgegeben wurde.