Benutzereingaben in Java lesen und schreiben

1. Einleitung

In diesem kurzen Tutorial zeigen wir Ihnen verschiedene Möglichkeiten, eine Konsole für die Benutzereingabe und -ausgabe in Java zu verwenden .

Wir werden uns einige Methoden der Scanner- Klasse für die Verarbeitung von Eingaben ansehen und dann einige einfache Ausgaben mit System.out zeigen .

Schließlich werden wir sehen , wie die verwenden Console - Klasse verfügbar seit Java 6, sowohl für Konsole Ein- und Ausgang.

2. Lesen von System.in

In unseren ersten Beispielen verwenden wir die Scanner- Klasse im Paket java.util , um die Eingabe von System.in zu erhalten - dem „Standard“ -Eingabestream :

Scanner scanner = new Scanner(System.in);

Lassen Sie sich verwenden , um die nextline () Methode eine ganze Reihe von Eingang als lesen String und in der nächsten Zeile:

String nameSurname = scanner.nextLine();

Wir können auch die next () -Methode verwenden, um das nächste Eingabetoken aus dem Stream abzurufen:

String gender = scanner.next();

Wenn wir numerische Eingaben erwarten, aktualisieren können wir verwenden nextInt () die nächste Eingabe als eine bekommen int primitiv, und in ähnlicher Weise können wir verwenden nextdouble () eine Variable vom Typ zu erhalten doppelt :

int age = scanner.nextInt(); double height = scanner.nextDouble();

Die Scannerklasse bietet auch hasNext_Prefix () -Methoden, die true zurückgeben, wenn das nächste Token als entsprechender Datentyp interpretiert werden kann .

Zum Beispiel können wir hasNextInt () verwendenMethode, um zu überprüfen, ob das nächste Token als Ganzzahl interpretiert werden kann:

while (scanner.hasNextInt()) { int nmbr = scanner.nextInt(); //... }

Wir können auch die hasNext- Methode (Pattern Pattern) verwenden, um zu überprüfen, ob das folgende Eingabetoken mit einem Pattern übereinstimmt :

if (scanner.hasNext(Pattern.compile("www.baeldung.com"))) { //... }

Neben der Verwendung der Scanner- Klasse können wir auch einen Input StreamReader mit System.in verwenden , um die Eingabe von der Konsole abzurufen :

BufferedReader buffReader = new BufferedReader(new InputStreamReader(System.in));

Und dann können wir die Eingabe lesen und in eine Ganzzahl analysieren:

int i = Integer.parseInt(buffReader.readLine()); 

3. Schreiben in System.out

Für die Konsolenausgabe können wir System.out verwenden - eine Instanz der PrintStream- Klasse, die eine Art OutputStream ist .

In unserem Beispiel verwenden wir die Konsolenausgabe, um eine Eingabeaufforderung für Benutzereingaben bereitzustellen und einem Benutzer eine endgültige Nachricht anzuzeigen.

Verwenden wir die println () -Methode, um einen String zu drucken und die Zeile zu beenden :

System.out.println("Please enter your name and surname: ");

Alternativ können wir die print () -Methode verwenden, die ähnlich wie println () funktioniert , ohne jedoch die Zeile zu beenden :

System.out.print("Have a good"); System.out.print(" one!");

4. Verwenden der Konsolenklasse für Ein- und Ausgabe

In JDK 6 und höher können wir die Console- Klasse aus dem java.io- Paket verwenden, um von der Konsole zu lesen und darauf zu schreiben.

Um ein Konsolenobjekt zu erhalten , rufen wir System.console () auf :

Console console = System.console();

Verwenden Sie als Nächstes die readLine () -Methode der Console- Klasse, um eine Zeile in die Konsole zu schreiben und anschließend eine Zeile von der Konsole zu lesen :

String progLanguauge = console.readLine("Enter your favourite programming language: "); 

Wenn wir vertrauliche Informationen wie ein Kennwort lesen müssen, können wir die Methode readPassword () verwenden, um einen Benutzer zur Eingabe eines Kennworts aufzufordern und das Kennwort mit deaktiviertem Echo von der Konsole zu lesen :

char[] pass = console.readPassword("To finish, enter password: "); 

Wir können die Console- Klasse auch verwenden , um Ausgaben in die Konsole zu schreiben, z. B. mithilfe der printf () -Methode mit einem String- Argument:

console.printf(progLanguauge + " is very interesting!"); 

5. Schlussfolgerung

In diesem Artikel haben wir gezeigt, wie mehrere Java-Klassen zum Eingeben und Ausgeben von Konsolenbenutzern verwendet werden.

Wie immer werden die Codebeispiele aus diesem Tutorial auf GitHub bereitgestellt.