# txt-datei einlesen und damit arbeiten



## miny (24. Jan 2011)

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.


----------



## w0ddes (24. Jan 2011)

Woran hängts? Datei einlesen? In Array speichern? Was hast du bisher selbst gemacht?!


----------



## miny (24. Jan 2011)

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 (24. Jan 2011)

in Array speichern: 


```
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  Aber sollst ja  auch noch n bisschen denken.


----------



## Marco01_809 (24. Jan 2011)

Wie sieht denn dein bisheriger Code aus, und was ist diese mysteriöse Karte?


----------



## miny (24. Jan 2011)

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:


```
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?


----------



## Gastredner (24. Jan 2011)

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 (24. Jan 2011)

> 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...


```
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 (24. Jan 2011)

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.


----------

