Weitere Grundlegendende Programmierkonzepte in Java
Hier erfährst Du, wie du Deine entwickelten Inhalte lesen und speichern kannst und lernst Methoden, Zahlen und Arrays kennen.
Methoden bzw. Funktionen
public static void schreibeSumme(int zahl1, int zahl2) { System.out.println(zahl1 + zahl2); }
Ein Aufruf dieser Methode könnte z.B. so aussehen schreibeSumme(1, 2);
Anstatt die Summe auszugeben kann sie auch zurückgegeben werden um sie im weiteren Programmablauf verwenden zu können. Hierfür muss der Rückgabetyp der Methode richtig definiert werden und es muss ein “return” definiert werden. Mit dem “return” wird festgelegt, welcher Wert zurück gegeben werden soll.
public static void berechneSumme(int zahl1, int zahl2) { return zahl1 + zahl2; }
Jeder Code-Pfad soll mit einem “return” enden. Code, der nach einem “return” folgt, wird nicht mehr ausgeführt.
Als letzter Teil der Signatur kann eine ‘throws’ Anweisung mit einem Fehlerdatentyp angegeben werden. Ersteinmal soll es ausreichen bei jeder Methodendeklaration “throws Exception” anzugeben. Wir werden im Abschnitt “Fehlerbehandlung” darauf genauer eingehen.
Wir haben jetzt alles was wir brauchen um unser Beispiel in mehrere Methoden aufzuteilen. Unsere Main-Methode soll dabei nur noch die einzelnen Aktionen starten. Als erstes prüft sie den Namen des Benutzers. Erst, wenn der Name der Richtige ist, werden Daten aus der Datei geladen. Dies soll in der Methode leseAusDatei() geschehen. Sie bekommt als Parameter eine Datei. Existiert die Datei so wird der Inhalt zurückgegeben, sonst nur ein leerer String.
Die zweite Methode leseEingaben() soll den Nutzer auffordern etwas einzugeben und die Eingaben zurück geben. Die dritte Methode schreibeDaten() gibt nichts zurück. Sie speichert den übergebenen String in die Datei. Dieses Programm kann wie folgt umgesetzt werden:
import java.io.File; import java.io.PrintWriter; import java.util.Scanner; public class Tagebuch { public static void main(String[] args) throws Exception { System.out.println("Wie heißt du?"); Scanner scanner = new Scanner(System.in); String name = scanner.next(); if (name.equals("Jan")) { System.out.println("Hallo " + name + "!"); File datei = new File("tagebuch-" + name + ".txt"); String text = leseAusDatei(datei); text .= leseEingaben(scanner); schreibeDaten(text, datei); } else { System.out.println("Der Benutzer ist abgelehnt."); } scanner.close(); } public static String leseAusDatei(File datei) throws Exception { String text = ""; if (datei.exists()) { Scanner scnr = new Scanner(datei); while (scnr.hasNextLine()) { text += scnr.nextLine() + "\n"; } scnr.close(); } System.out.println("Geladener Text: " + text); return text; } public static String leseEingaben(Scanner scanner) { String text = ""; System.out.println("Bitte Text eingeben. Zum Beenden 'quit' eingeben."); // Schleife zum Einlesen des Textes while (true) { String eingabe = scanner.next(); // "quit" beendet die Schleife if (eingabe.equals("quit")) { break; } text += eingabe; } System.out.println("Eingegeben wurde: " + text); return text; } public static void schreibeDaten(String text, File datei) throws Exception { PrintWriter printWriter = new PrintWriter(datei); printWriter.print(text); printWriter.close(); } }