Dateizugriff (1)

Vielleicht möchten Sie gelegentlich Benutzereingaben oder Highscores oder Ähnliches in einer kleinen Datei abspeichern und beim nächsten Programmstart wieder einlesen. Hier ein Beispiel, wie man eine feste Anzahl von Datensätze in eine kleine Textdatei schreiben und wieder einlesen kann:


import java.io.*;                                        // Bibliothek für Dateioperationen

public class MiniDatei {

  static int datenSätze=4;                               // Anzahl der zu speichernden Datensätze
  static String[] daten = new String[datenSätze];        // Stringfeld mit Datensätzen;

  static void schreibeIniDatei() throws IOException {    // Statische Methode, die die Daten
    File datei = new File("Myprog.ini");                 // auf die Festplatte schreibt
    FileWriter dateiSchreiber = new FileWriter(datei);
    PrintWriter aufPlatte = new PrintWriter(dateiSchreiber);
    for (int n=0; n<datenSätze; n++) {              
      aufPlatte.println(daten[n]);                  
    }
    aufPlatte.close();
  }

  static void leseIniDatei() throws IOException {         // Methode zum Einlesen der Daten
    File datei = new File("Myprog.ini");
    FileReader dateiLeser = new FileReader(datei);
    BufferedReader einLeser =new BufferedReader(dateiLeser);
    for (int n=0; n<datenSätze; n++) {              
      daten[n] = einLeser.readLine();               
    }
    einLeser.close();
  }

  public static void main(String[]args) throws IOException {
    daten[0] = "Pampelmuse"; daten[1]=String.valueOf(3765);
    daten[2]=String.valueOf(true); daten[3]=String.valueOf(3.9);   
    schreibeIniDatei();                                             // Daten in Datei schreiben
    for (int n=0; n<datenSätze; n++) daten[n]="";                   // Daten löschen
    leseIniDatei();                                                 // Daten neu einlesen
    for (int n=0; n<datenSätze; n++) System.out.println(daten[n]);  // Daten auf Bildschirm ausgeben
  }
}


 

Aufgaben:

  1. Versuchen Sie das Programm so zu erweitern, dass zwei Daten abgespeichert werden, z.B. ein Name und eine dazugehörige Punktzahl.
  2. Ändern Sie das Programm dergestalt, dass das Stringfeld für eine größere Anzahl von Strings dimensioniert wird (z.B. 100), aber die Schreibmethode jeweils nur so viele Strings auf Festplatte schreibst, wie tatsächlich belegt sind und die Lesemethode instand gesetzt wird, Textfiles mit einer unbekannten Zahl von Absätzen (Strings) einzulesen, ohne mit einer Exception abzubrechen.