Frage von Soulsmirror, 75

Java: txt.Datei in ein 2-dimensionales char array?

Hi Leute,

ich programmiere zurzeit ein Spiel namens Sokoban. Die Level des Spiels sind einfache Textdateien und können einfach ausgetauscht werden. Zum Einlesen der Datei hab ich BufferedReader benutzt.

Jetzt würde ich gerne wissen, wie ich die eingelesene Datei in ein char charAt Array speichern und als Spielfeld ausgeben kann.

Ich hoffe ihr könnt mir helfen

Sokoban-Levelformat: http://sokobano.de/wiki/index.php?title=Level_format

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von KnusperPudding, Community-Experte für Java, 20

Du liest die Daten Zeilenweise ein aber hast jedoch nicht die Anzahl der Zeilen. Entsprechend würde ich im ersten Schritt die eingelesenen Zeilen in eine  ArrayList speichern.

Wenn du im nächsten Schritt deine Array aufbaust, kannst du bei der Ersten Dimension dann bereits die Länge, sodass du deine Array bereits initialisieren kannst:

char[][] spielfeld = new char[list.size()][];

Pro Zeile bekommst du dann die nächste Dimensionslänge, da du ja die Länge der Zeilen hast:

String line;
...

while (... line = br.readLine()..) {

char[] spielZeile = new char[line.length())
Expertenantwort
von regex9, Community-Experte für Programmierung, 22

Du gehst genauso vor, als würdest du ein Spielfeld in der Konsole ausgeben wollen. Du läufst durch jede Zeile und pro Zeile durch jedes Zeichen. 

Keine passende Antwort gefunden?

Fragen Sie die Community