Ich versuche, einen Tile Map Editor für Java zu erstellen, und ich bin auf der Dateiöffnung stecken. Das Öffnen der Datei selbst ist nicht viel, aber es erzeugt Laufzeitfehler, sobald ich Leerzeichen in die Textdatei lege. Jede Kachel besteht aus einem Bild (schwarz oder weiß quadratisch atm) und ob es fest (1) oder nicht (0) sein wird. Die tilemaps werden derzeit in einem Format wie folgt gespeichert werden:Textdatei mit wiederholten Muster in Liste lesen
1:1 1:1 1:1 1:1 1:1 1:1
1:1 0:0 0:0 0:0 0:0 1:1
1:1 0:0 0:0 0:0 0:0 1:1
1:1 1:1 1:1 1:1 1:1 1:1
Dieses zum Beispiel ein einfaches Zimmer mit schwarzen Wänden sein könnte, die fest sind und die Spieler blockieren. Es wäre eine 6x4-Kachelkarte. Wie kann ich das Format x: x (Leerzeichen hier) definieren?
List<Integer> list = new ArrayList<Integer>();
File file = new File("file.txt");
BufferedReader reader = null;
try
{
reader = new BufferedReader(new FileReader(file));
String text = null;
while ((text = reader.readLine()) != null)
{
list.add(Integer.parseInt(text));
}
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
Was genau möchten Sie in jedem Element Ihrer Liste speichern? Eine einzelne 1: 1 oder die ganze Linie von ihnen? Die Ausnahme tritt auf, wenn Sie versuchen, eine Zeile mit Doppelpunkten zu analysieren. Warum versuchst du parsInt in dieser Zeile, die Doppelpunkte enthält? Wenn Sie Ihre Ints analysieren möchten, wie soll dann jedes Element in der Liste aussehen? –
Nun, das obige Codebeispiel dient dazu, es auf einer viel grundlegenderen Ebene arbeiten zu lassen. Im wirklichen Fall habe ich eine Liste TileMap. Tile ist eine Klasse bestehend aus int ID und int Type mit ihren getters() und setter(). Also möchte ich die erste 1 als ID und die zweite 1 als Typ speichern und so für jedes Tile-Element in der Liste weitermachen. Edit: Was ich suche ist wie die C# scanf Argumente% d oder% r usw. ... –