- Erstelle eine Klasse DateiSchreibenLesenHamster als Erbe der Klasse AllesKoennerHamster.
- → importiere die benötigten Pakete:
import java.io.*;
import AllesKoennerHamster.AllesKoennerHamster;
import java.util.*;
- Füge einen → Konstruktor hinzu.
Er ruft mit → super die übergeordnete Klasse auf.
- Erzeuge ein → Printwriter-Objekt, das in der gesamten Klasse gültig ist.
Denke daran, in der Datei → hamsterproperties eine Änderung vorzunehmen.
-
Erstelle eine Methode macheVor().
Verwende <→ try catch um eventuell auftretende Fehler abzufangen.
Die Klasse Random erledigt die Ermittlung einer Zufallszahl.
Die Methode geheZuKachel des AllesKoennerHamsters bewegt den Hamster zur zufällig bestimmten Kachel.
Schreibe mit Hilfe des → Beispiels die aktuelle Reihe und Spalte in eine Datei weg.txt.
Als Trennzeichen zwischen den Wert dient /.
void macheVor()
{
try
{
this.dateiName = . . .;
while (!this.maulLeer())
{
int reihe = . . .;
int spalte = . . .;
// Methode geheZuKachel() von AllesKoennerHamster verwenden
. . .
// reihe und spalte in Datei schreiben
. . .
}
}
catch (Exception fehlerMeldung)
{
this.schreib("Fehler beim Lesen der Datei!");
}
}
-
Eine Methode macheNach() liest den Weg aus der Datei weg.txt und geht ihn ab.
Erstelle für reihe und spalte jeweils eine → ArrayList
-
Die Datei weg.txt wird mit dem → bufferedReader gelesen.
Die gelesene Zeile muss mit → substring() nach dem Trennzeichen / durchsucht werden.
Die ermittelten Werte für reihe und spalte werden der ArrayList → hinzugefügt.
Die Kacheln werden mit einer for-Schleife nacheinander aufgesucht. Als Abbruchbedingung wird → ArrayList.size() verwendet.
void macheNach()
{
// ArrayList für reihe und spalte definieren
. . .
try
{
FileReader dateiName = . . .;
BufferedReader zeile = . . .;
// erste Zeile aus Datei lesen
String befehl = zeile.readLine();
while (befehl != null)
{
// gelesene Zeile mit → indexof am / trennen
int index = . . .
// den → Teilstring nach int (reihe, spalte) umwandeln
int reihe = Integer.parseInt(befehl.substring(0, index));
. . .
// zur ArrayList → hinzufügen
. . .
// naechste Zeile lesen
befehl = zeile.readLine();
}
// alle Kacheln aufsuchen
for (. . .)
{
. . .
}
}
catch (Exception fehlerMeldung)
{
this.schreib("Fehler beim Lesen der Datei!");
}