Java Eingabe und Java Ausgabe
In diesem Beitrag zeigen wir dir, wie die Java Eingabe und die Java Ausgabe genau funktioniert.
Du möchtest in kürzester Zeit verstehen, wie du ein Java Programm so programmierst, dass du etwas eingeben und wieder ausgeben lassen kannst? Dann ist unser Video genau das richtige für dich!
Inhaltsübersicht
Java Eingabe und Java Ausgabe – Was ist damit gemeint?
Die Java Eingabe und Java Ausgabe wird auch häufig mit I/O abgekürzt. Dabei steht I für Input und O für Output und ist für die Benutzer des Programms essentiell. Da es sich genau genommen um sogenannte Ströme (englisch streams) handelt, spricht man auch häufig vom Eingabestrom und Ausgabestrom.
Die Eingabe und Ausgabe in Java ist dafür gedacht, die entsprechende Eingabe in eine Sprache umzuwandeln, die der Computer versteht, um die Daten verarbeiten zu können. Falls im Programm eine Java Ausgabe verlangt wird, muss die Ausgabe zunächst wieder in eine für uns verständliche Sprache umgewandelt werden.
Das Konvertieren von Sprache zu Sprache ist so aufwendig, dass es dafür in Java vorprogrammierte Pakete gibt, die uns diese Arbeit ersparen. Damit können wir mittels einfacher Anweisungen eine Eingabe vom Benutzer verlangen, der dann automatisch konvertiert wird.
Java Scanner
Jetzt schauen wir uns einmal genauer an, wie man überhaupt eine Eingabe vom Benutzer mit einem Java Programm verlangen kann. Wie du schon weißt, gibt es dafür Pakete, die du nun in dein Programm einbinden musst. Nur so können wir deren Anweisungen benutzen.
Damit der Benutzer etwas in das Java Programm eingeben kann, benötigst du deshalb einen sogenannten Scanner. Mit diesem Java Scanner kann die Eingabe dann vom Programm verarbeitet werden. Damit du den Java Scanner benutzen kannst, musst du ihn zunächst wie folgt importieren:
import java.util.Scanner;
Es ist darauf zu achten, dass diese import
Anweisung immer über der Klasse steht. Da der Compiler sonst einen Fehler meldet.
Bei diesem Scanner in Java handelt es einfach um eine Java Klasse, welche bestimmte Methoden für dich bereithält. Insbesondere die Methode System.in
, welche einen Eingabestrom von der Tastatur erwartet. Damit du mit diesem Scanner arbeiten kannst, musst du zunächst in der main Methode
ein Objekt dieses Scanners erzeugen. Das erreichst du durch folgende Anweisung:
Scanner scanner = new Scanner(System.in);
Ein genaueres Beispiel schauen wir uns später noch an. Zunächst möchten wir dir die drei Input und Output Ströme in Java vorstellen.
System.in, System.out und System.err
In Java gibt es drei Möglichkeiten den Input und Output Strom zu verarbeiten: System.in
der Eingabestrom, System.out
, der Ausgabestrom für die normalen Ergebnisse und System.err
, der Ausgabestrom für Fehlermeldungen. Während System.out
und System.err
mit dem Bildschirm verbunden sind, ist System.in
mit der Tastatur verbunden und wartet auf Input.
Java Eingabe und Ausgabe mit String
Schauen wir uns einfach mal ein Java Programm an, das als Ausgabe unsere Eingabe ausgibt:
import java.util.Scanner;
class echo
{
public static void main(String[] args)
{
String input;
Scanner scan = new Scanner(System.in);
System.out.println("Input: ");
input = scan.nextLine();
System.out.println("Output:");
System.out.println(input);
}
}
Die erste Zeile des Programms bindet die Klasse Scanner aus dem Paket java.util
ein und ist nötig, um ein Objekt der Scanner Klasse zu erstellen. Ausschlaggebend in diesem Programm ist der String namens input
, der die Eingabe des Benutzers speichert, um diese später wieder ausgeben zu können.
Damit der Input überhaupt aufgefangen werden kann, muss ein neuer Scanner deklariert und erzeugt werden. Der Scanner heißt in diesem Beispiel einfach scan
.
Nachdem wir einen Scanner erstellt haben, können wir die Methode nextLine
im Ausdruck der Zuweisungsanweisung für den Input-String aufrufen. Dadurch wird automatisch das Programm angehalten und es wird auf den Input des Benutzers gewartet. Durch das Benutzen der Enter-Taste bestätigt der Benutzer seine Eingabe und das Programm speichert die Information in der Variable input
ab.
Am Schluss geben wir die Zeichen, welche wir eingegeben haben und nun in der Variablen input
gespeichert sind mit System.out
auf dem Bildschirm aus.
Java Eingabe und Ausgabe mit Integer
Die Java Klasse Scanner besitzt neben System.in
auch weitere Methoden. Sie enthält zum Beispiel auch eine Methode, mit welcher du Integer Zahlen eingeben kannst. Denn bis jetzt wurde deine Eingabe ja immer als String gespeichert. Um zum Beispiel einen Integer Wert als Eingabe zu verlangen, wird von der Klasse Scanner die nextInt
Methode vorgegeben. Damit kannst du jetzt auch einen Interger Wert von dem Benutzer verlangen und als Integer speichern. Das obere Beispiel sieht dann modifiziert wie folgt aus:
import java.util.Scanner;
class echo
{
public static void main(String[] args)
{
int input;
Scanner scan = new Scanner(System.in);
System.out.println("Input: ");
input = scan.nextInt();
System.out.println("Output:");
System.out.println(input);
}
}
Der Benutzer darf dabei jedoch nur eine ganzzahlige Zahl ohne Komma eingeben. Ansonsten gibt das Programm eine Fehlermeldung aus und wird beendet.
Fehlermeldungen vermeiden
Es gibt verschiedene Arten, wie man den Benutzer davon abhalten kann Fehlermeldungen auszulösen. Betrachten wir hierzu einmal unser letztes Beispiel mit Integer Eingabe. Hier könntest du die Zuweisungsanweisung, die den Wert mittels nextInt
in der Variablen var
speichert in eine if-Anweisung verpacken. So wird der Input nur zugewiesen, wenn es sich auch wirklich, um einen Integer Wert handelt. Die if-Bedingung dazu wäre hasNextInt
. Diese ist auch eine Methode aus der Klasse Scanner, die überprüft, ob es sich bei dem Input, um einen integer Wert handelt oder nicht. Wenn das nicht der Fall ist, teilen wir das dem Benutzer mittels else
mit.
Wir wollen dich noch darauf hinweisen, dass die Scanner Klasse noch weitere Methoden besitzt, aber wie du siehst reichen für die einfache Java Eingabe und Java Ausgabe schon zwei Methoden aus. Nun kannst du Programme mit einfacher Eingabe und Ausgabe in Java schreiben.