Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Zahlen einlesen und in int Array speichern » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Zahlen einlesen und in int Array speichern
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Tommy1234
Foren As


Dabei seit: 12.07.2015
Beiträge: 93

Zahlen einlesen und in int Array speichern Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
29.11.2015 22:16 Tommy1234 ist offline Beiträge von Tommy1234 suchen Nehmen Sie Tommy1234 in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Annahme: du hast mindestens Java7

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Main {

	public static void main(String[] args) {
		Path path = Paths.get("path/to/file");
		try {
			byte[] data = Files.readAllBytes(path);
			for (byte b : data) {
				System.out.println(b);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}


__________________
Syntax Highlighting fürs Board (Link)
30.11.2015 07:19 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Tommy1234
Foren As


Dabei seit: 12.07.2015
Beiträge: 93

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
30.11.2015 10:23 Tommy1234 ist offline Beiträge von Tommy1234 suchen Nehmen Sie Tommy1234 in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Zahlen einlesen und in int Array speichern