Geschrieben von Tommy1234 am 29.11.2015 um 22:16:
Zahlen einlesen und in int Array speichern
Hallo zusammen,
ich habe eine Anfängerfrage obwohl ich eigentlich schon weiter bin mit java.
Also zum Problem:
Ich habe eine Textdatei in der 20748 Zahlen sind, die jeweils durch ein Komma voneinander getrennt sind.
Nun möchte ich die Zahlen einlesen und in einem eindimensionalen int-Array speichern, sodass ich sie mir auch auf der Konsole in der richtigen Reihenfolge ausgeben lassen kann.
Warum will ich das?
Nun ja, ich programmiere einen Megaman Klon ( NES erster Teil ).
Allerdings funktioniert meine bisherige Methode um eine TiledMap zu laden nicht mehr, da zu viele Werte in dem int Array stehen, wenn ich dieses im Quellcode direkt lade.
Nun hab ich in der API nachgesehen und FileReader gefunden.
Leider weiss ich noch nicht ganz genau, wie der funktioniert oder wie man ihn richtig implementiert.
Hier mal meine Methode, die die TileMap lädt:
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
|
public void generateMap(int level_nr){
if(level_nr == 1){
tiles_w=2;
tiles_h=2;
}
levelMap = new int[tiles_h][tiles_w];
for(int h=0;h<tiles_h;h++){
for(int w=0;w<tiles_w;w++){
if(level_nr==1){
levelMap[h][w]= level[byte_nr];// das level Array ist das int Array, das ich ausgelesen haben möchte
byte_nr++;
}
}
}
} |
|
Wäre für ilfe sehr dankbar
Gruß Tommy
Geschrieben von Tommy1234 am 30.11.2015 um 10:23:
Hallo,
ich war als ich das gepostet habe in völliger Umnachtung und auch etwas verzweifelt. Es ist natürlich klar wie das funktioniert. Habs zwar anders wie Du aber dennoch danke für die Antwort.
Hier nochmal der Code um aus einer Textdatei Zahlen als String auszulesen, diese in einem String Array zu speichern und anschließend in ein int Array zu konvertieren:
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
|
public void generateMap(int level_nr,String filename){
if(level_nr == 1){
tiles_w=273;
tiles_h=76;
}
String stringMap = "";
try {
BufferedReader reader = new BufferedReader(new FileReade(filename));
String line = null;
while ((line = reader.readLine()) != null) {
stringMap += line;
}
} catch (IOException e) {e.printStackTrace();}
if(stringMap != ""){
String[] stringarray = stringMap.split(",");
int[] level = new int[stringarray.length];
for(int i = 0;i<stringarray.length;i++){
level[i] = Integer.parseInt(stringarray[i]);
}
levelMap = new int[tiles_h][tiles_w];
for(int h=0;h<tiles_h;h++){
for(int w=0;w<tiles_w;w++){
if(level_nr==1){
levelMap[h][w]= level[nr];
nr++;
}
}
}
}
} |
|
Das ganze erzeugt dann die Map aus der Textdatei und kan auch imKontruktor geladen werden.
Betrachtet das Thema als gelöst.
Danke nochmal.
Gruß Tommy