zur vorherigen Seite  zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Es hört auf zu existieren.


Monat speichern

Es ist möglich ein Runtime-Objekt zu speichern. Das ist ein fortgeschrittenes Thema.

Hier ist ein erweiterter MonatTester, der dem Anwender die Möglichkeit gibt die Daten in einer Textdatei zu speichern.

Eine Verbesserung des Programms wäre es, den Anwender nach dem Dateinamen zu fragen. Eine weitere Verbesserung wäre es die Daten von einer Datei einzulesen. Das hört sich nach einer guten Idee für Programmieraufgaben an.


import java.util.Scanner;
import java.io.*; // fuer PrintWriter

public class MonatsTester
{
  public static void main( String[] args)
  {
    Scanner scan = new Scanner( System.in );
    Monat jan = new Monat( 1, 2024 ) ;
    String zeile = "J";

    // Monat mit Temperaturen fuellen
    while ( zeile.toUpperCase().charAt(0) == 'J' )
    {
      System.out.print("Tag?  ");
      int tag = scan.nextInt();

      System.out.print("Temperatur? ");
      int grad = scan.nextInt();
      if ( !jan.setTemp(tag, grad ) )
        System.out.println("Fehler im Input ");

      System.out.print("Fortfahren (J/N)? ");
      zeile = scan.next();
    }

    System.out.println( jan );

    // Daten in einer Datei speichern
    System.out.print("Datei in einer Datei speichern (J/N)? ");
    zeile = scan.next();
    if ( zeile.toUpperCase().charAt(0) == 'J' )
    {

      try
      {                                       // Beispiel Windows
        PrintWriter output = new PrintWriter( "c:/daten/monatsDaten.txt" );
        output.print( jan.toString() ) ;
        output.close();
        System.out.println("Datei erfolgreich gespeichert.");
      }
      catch(IOException e)
      {
        System.out.println("Datei konnte nicht gespeichert werden!");
      }
    }
  }

}

Hinweise: PrintWriter könnte eine IOException auslösen. Falls eine Ausnahme ausgelöst wird, wird der catch-Block ausgeführt. Damit der Compiler PrintWriter findet, muss das Package PrintWriter importiert werden.

Die beispielhafte Pfadangabe oben für PrintWriter funktioniert für das Betriebssystem Windows. Für Unix und ähnliche Betriebssystem inklusive macOS könnt Ihr z.B. so etwas wie die folgende Pfadangabe probieren: /home/user/docs/monatsDaten.txt


Frage 12:

Was könnte passieren, wenn wir close vergessen?


zur vorherigen Seite  zum Inhaltsverzeichnis   zur nächsten Seite