This is an old revision of the document!
Input / Output
Konsole
Output auf die Konsole
int a = 24; int b = 5; System.out.println(a); // Ausgabe mit Zeilenumbruch // String zusammensetzen. Anfung muss String sein! System.out.print("b = "+b); // Ohne Zeilenumbruch. System.out.println(" und a = "+a); // Bequemer als Strings zusammensetzen System.out.format("a=%d, b=%d, a/b=%d (double)a/b=%f\n", a,b,a/b,(double)a/b); // Mehr Kontrolle über die Formatierung System.out.format("%5d\n*%4d\n-----\n%05d\n=====\n",a,b,a*b); // Double formatieren. double c = 1.125; System.out.format("->%.2f<-\n->%4.2f<-\n->%010.5f<-\n->%.5f<-\n", c,c,c,c); // (Viel) mehr Info zu format: https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html
Mehr Infos auf https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html
Eingabe auf der Konsole
// Eingabe. Scanner auf System.in (Konsolen-Eingabe) Scanner scan = new Scanner(System.in); System.out.print("Ihr Name bitte: "); // Nächste Zeile einlsesen String name = scan.nextLine(); System.out.print("Ihr Alter: "); // Achtung: Diese Methode produziert Fehler, wenn nicht eine Ganzzahl eingegeben wird. int alter = scan.nextInt(); System.out.format("%s ist %d Jahre alt.\n", name,alter);
Textdateien
Hinweis: Operationen mit Dateien können Fehler verursachen (z.B. weil die Datei nicht (mehr) existiert). Diese Fehler können entweder abgefangen werden (mit try / catch) oder “ignoriert” werden, indem man die main-Methode wie folgt erweitert:
public static void main(String[] args) throws IOException { // .... }
Für die Manipulation von Datei sind einige Imports nötig. Netbeans schlägt diese Imports vor, manuelles Eingeben bzw. Abschreiben ist nicht nötig:
import java.io.BufferedWriter; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Scanner;
Ausgabe in eine Datei
Ohne absolute Pfadangabe landen die Dateien im aktuellen Projekt-Verzeichnis.
// Ausgabe in Datei Path datei = Paths.get("ausgabe.txt"); // Datei öffnen (wird am Ende des try-Blocks automatisch geschlossen) try (BufferedWriter writer = Files.newBufferedWriter(datei)) { // Daten schreiben. writer.write(String.format("%d%n%d%n",a,b)); } System.out.format("Habe die Zahlen %d und %d in die Datei %s geschrieben.%n", a,b,datei.toRealPath());
Lesen aus einer Datei
int x; int y; // Datei öffnen und in einen Scanner einbinden // Scanner und Datei werden am Ende vom try-Block automatisch geschlossen. try (Scanner scanner = new Scanner(Files.newInputStream(datei))) { x = scanner.nextInt(); y = scanner.nextInt(); } System.out.format("Aus Datei: %d und %d%n", x,y);