Ein- und Ausgabe auf der Kommandozeile

Die Kommandozeile wird in Java über zwei Datenströme angesprochen. Diese können über die immer verfügbare System Klasse angesprochen werden.

System.out
Die Ausgabe erfolgt über den System.out Datenstrom. Er bietet dieser ist ein Objekt der Klasse PrintStream und beherrscht dessen Methoden zur Ausgabe, wie print(String) und println(String).
System.in
Um Date von der Kommandozeile einzulesen steht unter System.in ein Objekt der Klasse InputStream zur Verfügung. Dieser kann Daten in Form von Bytes einlesen. Zur einfacheren Handhabung stellt Java die Hilfsklasse java.util.Scanner zur verfügung, mit der statt Bytes auch direkt Integer oder Strings eingelesen werden können.

Ausgaben auf der Kommandozeile

Ausgaben über den Ausgabestrom System.out können jederzeit in einem Javaprogramm gemacht werden.

// Ausgabe mit automatischem Zeilenumbruch am Ende
System.out.println("Hello, World!");

// Ausgabe ohne Zeilenumbruch am Ende
System.out.print("Hello, ");
System.out.print("World!");
System.out.print("\n"); // Manueller Zeilenumbruch. Das Selbe wie System.out.println();

Für komplexere Ausgaben gibt es noch die Methode printf(String, Object..), der man neben einem Text-Objekt auch noch eine Reihe an weiteren Parametern übergibt, die dann im Text für vorgegebene Platzhalter eingesetzt werden. Dies erlaubt wesentlich genauere Textformatierungen für Teste mit variablen Inhalten, als mit einfacher String-Verknüpfung durch +.

// String mit Platzhaltern für Daten:
// %s - Platzhalter für einen String
// %d - Platzhalter für eine Zahl
//      %05d bedeutet, dass die Zahl so viele Nullen vorangestellt werden, dass sie insg. 5 Zeichen hat
System.out.printf("Hallo, %s! Hier ist eine Zahl: %05d", "Welt", 5); // Hallo, Welt! Hier ist eine Zahl: 00005

Eine gute Übersicht der Ausgabemethoden und Platzhalter-Befehle gibt es in diesem PDF.

Eingaben unter Verwendung der Scanner-Klasse

Die Scanner-Klasse kann wie folgt verwendet werden (nicht vergessen ganz oben die Klasse per import java.util.Scanner zu importieren):

/**
 * Zeigt dem Benutzer einen Text auf der Kommandozeile an und wartet auf die Eingabe
 * einer Zahl.
 * @return Die eingegebene Zahl
 * @see java.util.Scanner#nextInt()
 */
public int zahlEinlesen( String pText ) {
	Scanner eingabe = new Scanner(System.in);

	System.out.println(pText);
	return eingabe.nextInt();
}

/**
 * Zeigt dem Benutzer einen Text auf der Kommandozeile an und wartet auf die Eingabe
 * eines Textes.
 * @return Der eingegebene Text
 * @see java.util.Scanner#nextLine()
 */
public String textEinlesen( String pText ) {
	Scanner eingabe = new Scanner(System.in);

	System.out.println(pText);
	return eingabe.nextLine();
}