Keller-Dev Docs · Java & Hytale

Java Core

TileMaps effizient aus Textdateien laden (2D-Array)

Verwendung von java.nio.file.Files zum Einlesen von Grid-Karten aus Textdateien. Vorgehen: Datei mittels Files.readAllLines(Path.of(path)) in eine List<String> laden. Abfangen von leeren Zeilen (lines.removeIf(String::isBlank)). Validierung auf konstante Zeilenlängen (Rechteck-Prüfung). Übertrag der Zeichen in ein int[reihe][spalte]-Grid für schnelle O(1)-Zugriffe.

Referenz: Datei 1. Spielprojekt · Klasse TileMap
public static TileMap loadFromFile(String path) throws IOException {
    List<String> lines = Files.readAllLines(Path.of(path));
    lines.removeIf(String::isBlank);

    int height = lines.size();
    int width = lines.get(0).length();
    int[][] tiles = new int[height][width];

    for (int row = 0; row < height; row++) {
        String line = lines.get(row);
        for (int col = 0; col < width; col++) {
            tiles[row][col] = Character.getNumericValue(line.charAt(col));
        }
    }
    return new TileMap(tiles);
}
#file-io #nio #2d-array #tilemap #parsing
Bearbeiten