Wie kann man auf der Kommandozeile Text eingeben?
Dem InputStreamReader
wird als Parameter die
Eingabequelle - in diesem Fall der Eingabestrom von der Tastatur -
übergeben. Das Objekt selber wird zur Pufferung an einen BufferedReader
gesandt. Mit Hilfe dessen Methode readLine()
wird die
Eingabe gelesen.
Zur Kontrolle wird die Eingabe auf der
Kommandozeile ausgegeben.
import java.io.*;
public class TextEingebenClass {
public static void main(String[] args) {
System.out.println("Bitte Text eingeben und mit Return abschliessen:" + System.getProperty("line.separator"));
try {
BufferedReader ein = new BufferedReader(new InputStreamReader(System.in));
String s = ein.readLine();
System.out.println("Du hast eingegeben:" + System.getProperty("line.separator") + s);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
Das Beispiel verwendet zweimal die Methode System.getProperty()
mit dem Parameter line.separator
. Auf diese Weise
lassen sich plattformübergreifende Zeilenumbrüche
realisieren. Ein Überblick über alle möglichen
Parameter verschafft die Methode System.getProperties()
in der Java Dokumentation.
v.6.0Ab JavaSE 6.0 stellt die Klasse System
die statische Methode console() bereit, die ein Objekt der
aktuellen Konsole liefert. Hier sind einige Vereinfachungen
eingeführt worden. So besitzt die Klasse Console
eine Methode readLine()
, die einen einzeiligen String
von der Konsole liest und zurück gibt. Der folgende Quelltext
demonstriert dies:
import java.io.Console;
public class Konsole {
public static void main(String[] args) throws ClassNotFoundException {
Console console = System.console();
if (console == null) {
System.err.println("Keine Konsole erreichbar!");
return;
}
String s = console.readLine("Geben Sie Ihren Namen ein!");
System.out.println("Hallo " + s);
}
}
v.5.0Ab Java v.5.0 kann auch mit Hilfe
der Klasse Scanner
von der Kommandozeile gelesen
werden. Hierzu muss dem Konstruktor ein InputStream
übergeben werden. Näheres hierzu im Artikel zur Klasse Scanner
.
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.