Konsolen-E/A in Java

1. Einführung

In diesem kurzen Lernprogramm zeigen wir Ihnen einige Möglichkeiten, wie Sie eine Konsole für Benutzereingaben und -ausgaben in Java verwenden können.

Wir betrachten einige Methoden der Klasse Scanner für die Verarbeitung von Eingaben. Anschließend zeigen wir einige einfache Ausgaben mit System.out .

Schließlich erfahren Sie, wie Sie die seit Java 6 verfügbare Klasse Console für die Konsoleneingabe und -ausgabe verwenden.

2. Lesen von System.in

Für unsere ersten Beispiele verwenden wir die Klasse _Scanner im Paket java.util , um die Eingabe von System.in_ ** zu erhalten - dem Eingabestrom "Standard":

Scanner scanner = new Scanner(System.in);

Lassen Sie uns die nextLine () -Methode verwenden, um eine gesamte Eingabezeile als String zu lesen und zur nächsten Zeile zu gelangen:

String nameSurname = scanner.nextLine();

Wir können auch die Methode _next () _ verwenden, um das nächste Eingabe-Token ** aus dem Stream abzurufen:

String gender = scanner.next();

Wenn wir numerische Eingaben erwarten, können wir nextInt () verwenden, um die nächste Eingabe als int -Primitiv abzurufen, und auf ähnliche Weise können wir nextDouble () verwenden, um eine Variable des Typs double zu erhalten:

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

Der _Scanner class 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 () __method verwenden, um zu prüfen, ob das nächste Token als Ganzzahl interpretiert werden kann:

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

Außerdem können wir mit der Methode _ hasNext (Pattern pattern) _ prüfen, ob das folgende Eingabe-Token einem Muster entspricht ** :

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

Neben der Klasse Scanner können wir auch einen InputStreamReader mit _System.in _ verwenden, um die Eingabe von der Konsole zu erhalten **

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

Und dann können wir Eingaben lesen und in eine Ganzzahl parsen:

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

3. Schreiben an System.out

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

In unserem Beispiel verwenden wir die Konsolenausgabe, um eine Eingabeaufforderung für den Benutzer einzugeben und eine endgültige Nachricht an einen Benutzer anzuzeigen.

Verwenden Sie die Methode _println () , um einen String_ zu drucken und die Zeile zu beenden ** :

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

Alternativ können wir auch die Methode _print () verwenden, die ähnlich wie println () _ funktioniert, ohne die Zeile zu beenden.

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

4. Verwendung der Console -Klasse für Eingabe und Ausgabe

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

Um ein Console -Objekt zu erhalten, rufen wir System.console () auf:

Console console = System.console();

Als Nächstes verwenden wir die __readLine () -Methode der __Console-Klasse, um eine Zeile in die Konsole zu schreiben und dann eine Zeile von der Konsole aus zu lesen ** :

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

Wenn Sie vertrauliche Informationen wie z. B. ein Kennwort lesen müssen, können Sie die Methode readPassword () verwenden, um einen Benutzer zur Eingabe eines Kennworts aufzufordern und das Kennwort von der Konsole aus zu lesen.

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

Wir können auch die Klasse Console verwenden, um die Ausgabe in die Konsole zu schreiben, beispielsweise mit der Methode _printf () method ** mit einem Argument String_ :

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

5. Fazit

In diesem Artikel haben wir gezeigt, wie Sie mehrere Java-Klassen verwenden, um Konsolenbenutzereingaben und -ausgaben auszuführen.

Die Codebeispiele aus diesem Tutorial werden wie immer unter https://github.com/eugenp/tutorials/tree/master/core-java/src/main/java/com/baeldung/console [over auf GitHub zur Verfügung gestellt.