txt-datei einlesen und damit arbeiten

miny

Mitglied
hilfe hilfe

Ich bin Student an ner annonymen Uni, und an Java am verzweifeln.
Ich müsste eben ein Spiel programmieren (mit java, ecplise), in dem ich eine Karte (aus Zahlen bestehend) aus einer textdatei auslese. jedoch fällt es mir schon schwer, das ganze gedanklich zu strukturieren. Die Karte wird aus einer txt-Datei gelesen und soll in einen 2 dimensionalen array gepackt werden.

Wäre nett wenn man mir helfen könnte

Abgabe ist in 2 stunden.
 

miny

Mitglied
Ich habe eine txt-datei erstellt, in dem der Zahlencode für eine Karte drauf ist, sozusagen als 10*11 Feld.. das lässt sich zwar einlesen, jedoch weiß ich nicht, wie ich das in einen zweidimensionalen Array speichern kann, um damit arbeiten zu können.
 

w0ddes

Bekanntes Mitglied
in Array speichern:

Java:
for(int x = 0; x <= deinArray.length(); x++){
    for(int y = 0; y <= deinArray[x].length(); y++){
        deinArray[x][y] = dasWasDuEinliest;
    }
}

Natürlich vorher dein Array erstellen und x und y gegebenenfalls anpassen :p Aber sollst ja auch noch n bisschen denken.
 

miny

Mitglied
Also die mysteriöse Karte ist sind einfach Zahlen in einer .txt-Datei, eben als 10*11 Feld dargestellt (kann man sich als matrix vorstellen). Der Code, mit dem wir das ganze Ding darstellen lassen können wäre:

Java:
public void read(){
FileReader fr = null;

try { fr = new FileReader("map.txt");
int c;
while ((c=fr.read()) != -1)
System.out.print((char)(c));

Ist ja kein Problem, das in einem eindimensionalen Array zu speicher... aber in einem zweidimensionalen? wie erkenne ich, wann ne Zeile gesprungen wird?
 
G

Gastredner

Gast
Wrappe deinen FileReader in einen BufferedReader. Dieser bietet die Methode readLine(), welche eine komplette Zeile einliest und als String zurückgibt. Über die String-Methode split(String) kannst du anschließend diesen String in die einzelnen Zahlen zerlegen und diese in dein Array schreiben.
 

ARadauer

Top Contributor
Ich bin Student an ner annonymen Uni .... Ich müsste eben ein Spiel programmieren...Abgabe ist in 2 stunden.
Ich hau mich weg!!! Ich hoffe mal du studierst nich Informatik...

Java:
 ArrayList<String[]> lines = new ArrayList<String[]>();
      BufferedReader reader = new BufferedReader(new FileReader(new File("map.txt")));

      String line;
      while ((line = reader.readLine()) != null) { // zeilenweise einlesen
         lines.add(line.split(";")); // zerteilen bei ;...oder wie du auch immer deine Zahlen getrennt hast
      }

      //liste mit arrays in 2 dim array umkopieren..
      String[][] feld = new String[lines.size()][];
      for (int i = 0; i < lines.size(); i++) {
         feld[i] = lines.get(i);
      }
 

miny

Mitglied
Ja okay, habe deinen post Beitrag soweit verstanden... bis auf alles, was im Java Code steht. Könntest du das vielleicht etwas erklären? Wäre sehr lieb.
 

Neue Themen


Oben