Textfile mit BufferReader einlesen

luna

Mitglied
Heiho alle zusammen!

Ich möchte ein Spielplan mit Städten erstellen. Jede Stadt davon ist einigen anderen Städten verbunden und via einem oder mehreren Transportmittel (Auto, Zug, Flugzeug) erreichbar.
Für die Inizialisierung des Spiels möchte ich ein Textfile erstellen das ungefähr so aussieht:

1: CAR 23, TRAIN 6
2: PLANE 76, PLANE 88, CAR 4
...

[Startstadt]: [Transportmittel] [Zielstadt], [Transportmittel] [Zielstadt],...

Somit kann man also von der Stadt 1 mit dem Auto zur Stadt 23 und mit dem Zug zur Stadt 6.

Nun möchte ich die Zeilen einzeln in einen Array (sinnvoll?) einlesen, damit ich so die Städte erstellen kann.
Ist hier ein BufferedReader sinnvoll und wie mache ich es dass es mir die Infos sinnvoll abspeichert (String-Array mit split?)? Resp. ist es sinnvoll, wenn mein Textfile wie oben gegliedert ist?

Steh irgendwie gerade auf dem Schlauch :)
 

Final_Striker

Top Contributor
Die einzelnen Werte mit einem Trennzeichen speichern, z.B:

2: PLANE 76: PLANE 88: CAR 4

dann kannst du die Datei zeilenweise Einlesen und nach dem Trennzeichen trennen. ;-)
 

luna

Mitglied
Merci für die schnelle Antwort!

Ich bin leider erst soweit gekommen:

Java:
String line;
String[][] cities = new String[199][];
BufferedReader file = new BufferedReader(new FileReader("Constants.txt");

for (int i = 0; (line = file.readLine()) != null; i++) {
     for (int j = 0; ???   ; j++) {
          cities[i][] = line.split(":");
     }
}

Wie muss ich hier in der zweiten for-Schleife abbrechen damit es mir alle Werte pro Zeile in den Array liest?
 
Zuletzt bearbeitet:

luna

Mitglied
Heiho!

Ich hab die Konstanten jetzt folgendermassen deklariert:

1: CAR 2: CAR 12: TRAIN 24
...

Nun habe ich den folgenden Code geschrieben, um zu testen, ob auch alles io ist:

Java:
BufferedReader file = new BufferedReader(new FileReader("C:\\Constants.txt");
String line = "";
String[][] cities = new String[199][20];    //es gibt 199 Städte auf dem Plan und jeder hat maximal 20 Verbindungen zu den anderen

for (int i = 0; (line = file.readLine()) != null); i++) {
     for (int j = 0; j < cities[i].length; j++) {
           cities[j] = line.split(":");
      }
}
file.close();
Syso(cities[1][12]);

Das Problem ist, dass ich ja eigentlich cities[j] = line.split(":"); machen müsste, doch da zeigt es mir immer die nette Fehlermeldung TypeMissmatch an.

Wie kann ich es also bewerkstelligen, dass ich im ersten Array die einzelnen Städte habe und im zweiten dann die Verbindungen?
Hab schon versucht nur einen Array zu machen und dann eine List, aber dann wird line.split() nicht akzeptiert, kA warum.

Merci für Tipps!
 

dj3nk

Mitglied
Also du willst das die erste Dimension des Arrays die einzelnen Städte darstellt, und in die 2. Dimension die jeweiligen Verbindungsmöglichkeiten.
Also ich würde auf deinem Code aufbauend den line.split() einfach in ein array schreiben und von dort jeweils die Werte wieder rauskopieren in dein 2-dimensionales Array.

Java:
import java.util.StringTokenizer;

BufferedReader file = new BufferedReader(new FileReader("C:\\Constants.txt");
String line = "";
String[][] cities = new String[199][20];    //es gibt 199 Städte auf dem Plan und jeder hat maximal 20 Verbindungen zu den anderen
String[] connections;                            //zum Zwischenlagern der aktuellen Zeile

for (int i = 0; (line = file.readLine()) != null); i++) {
     connections[] = line.split(":");                           // aktuelle Zeile in Array aufteilen
     for (int j = 0; j<=connections.lenght-1; j++) {     // bis zur länge des connectionsarray-1 (NUR Verbindungen, NICHT Quellstadt)
           cities[i][j] = connections[j+1];                    //Der 1. Token der ankommt war ja nur die Quellstadtm, daher j+1 als 1.Ziel
      }
}
file.close();
Syso(cities[1][12]);

TypeMismatch kommt, weil du ein eindimensionales Array gleich einem zweidimensionalen gleichsetzt und nicht explizit die INHALTE überschreibst.

String[] != String[][]

wobei
erstesStringArray[2] kann evtl = anderesStringArray[2][5] sein. Da kommt es eben auf den Inhalt von genau dem einen Feld an.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Textfile mit StringTokenizer einlesen und sortiert ausgeben Java Basics - Anfänger-Themen 8
F Textfile auslesen und durchsuchen Java Basics - Anfänger-Themen 13
N User Eingabe mit Zeile aus TextFile vergleichen Java Basics - Anfänger-Themen 13
D Textfile lesen/schreiben abhängig vom inhalt Java Basics - Anfänger-Themen 6
A Textfile wird nur unvollständig eingelesen Java Basics - Anfänger-Themen 4
M Import Unicode Textfile Java Basics - Anfänger-Themen 10
A Textfile verarbeiten. Java Basics - Anfänger-Themen 15
M textfile mit java auslesen Java Basics - Anfänger-Themen 4
mwildam Textfile lesen und schreiben - so viele Möglichkeiten Java Basics - Anfänger-Themen 5
M if-else-endif in Textfile erkenne Java Basics - Anfänger-Themen 8
M in Textfile Strukturen erkennen Java Basics - Anfänger-Themen 5
M Textfile durchlaufen und ersetzen Java Basics - Anfänger-Themen 2
M in Textfile Textphrase ersetzen Java Basics - Anfänger-Themen 13
P Textfile einlesen Java Basics - Anfänger-Themen 8
S Ringbuffer-Speicher mit einem Textfile Java Basics - Anfänger-Themen 2
H Mit JSP in ein Textfile schreiben Java Basics - Anfänger-Themen 2
H Header von Textfile bearbeiten Java Basics - Anfänger-Themen 14
G Stringmaipulation, Textfile einelsen und Suchen und Ersetzen Java Basics - Anfänger-Themen 12
M Textfile in einer JTextArea anzeigen Java Basics - Anfänger-Themen 3
R Textfile vs Serialized Objects Java Basics - Anfänger-Themen 4
A Abspeichern von werten in einer textfile. Java Basics - Anfänger-Themen 2
G wie 'tabs' und 'zeilenumbruch' in textfile einbauen? Java Basics - Anfänger-Themen 5
G Textfile bearbeiten und speichern Java Basics - Anfänger-Themen 3
T BufferReader soll datei mehrmals lesen Java Basics - Anfänger-Themen 13
T Verstehe Bufferreader prinzip nicht Java Basics - Anfänger-Themen 3
S BufferReader IOException Java Basics - Anfänger-Themen 3
G Fehler bei Array und BufferReader Java Basics - Anfänger-Themen 7
G BufferReader --> BufferWriter Java Basics - Anfänger-Themen 19
O Variable Zimmergrößen per scanner einlesen Java Basics - Anfänger-Themen 5
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
G JTree speichern und wieder einlesen Java Basics - Anfänger-Themen 5
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
S SeriellenPort einlesen Java Basics - Anfänger-Themen 3
I XML einlesen und Objekte bekommen Java Basics - Anfänger-Themen 2
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
julian0507 Wörter einlesen lassen und rückwärts ausgeben Java Basics - Anfänger-Themen 7
S JSON einlesen und benutzen Java Basics - Anfänger-Themen 5
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
I Ical4j / Kalender einlesen von URL - Fehler: "Unparseable date" Java Basics - Anfänger-Themen 16
Saiko Zeilen einer Datei einlesen Java Basics - Anfänger-Themen 3
sserio Txt Datei einlesen Java Basics - Anfänger-Themen 9
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
M String beim einlesen formatieren Java Basics - Anfänger-Themen 12
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
G JSP Textfeld einlesen Java Basics - Anfänger-Themen 2
M Einlesen > new Leser Java Basics - Anfänger-Themen 5
W Werte durch Konsole einlesen Java Basics - Anfänger-Themen 10
A Array einlesen und ausgeben Java Basics - Anfänger-Themen 13
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
KogoroMori21 Textdatei einlesen im Array (Selection Sort Algorithmus) Java Basics - Anfänger-Themen 3
S Wort einlesen Array ausgeben Java Basics - Anfänger-Themen 4
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
A Input/Output Mehrere Csv-Dateien einlesen Java Basics - Anfänger-Themen 2
S CSV einlesen und mit Komma trennen Java Basics - Anfänger-Themen 12
CptK Richtigen Pfad beim einlesen von Datei finden Java Basics - Anfänger-Themen 2
I Java-Wort einlesen und ausgeben Java Basics - Anfänger-Themen 7
J Csv-Datei einlesen Java Basics - Anfänger-Themen 52
JD_1998 Arrays einlesen, zwischenspeichern und wieder ausgeben Java Basics - Anfänger-Themen 8
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
L Datein einlesen Java Basics - Anfänger-Themen 1
O zufälliges Wort aus einer Datei einlesen Java Basics - Anfänger-Themen 32
E Input/Output Datei anhand von Dateinamen einlesen Java Basics - Anfänger-Themen 5
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
A Input/Output Dateien einlesen und ausgeben Java Basics - Anfänger-Themen 7
A Klasse um daten zu einlesen Java Basics - Anfänger-Themen 26
A 2d Arrays aus txt.file einlesen Java Basics - Anfänger-Themen 16
A Textdatei mit stream einlesen Java Basics - Anfänger-Themen 2
P Datei einlesen und zurückgeben Java Basics - Anfänger-Themen 5
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3
M String in Scanner einlesen Java Basics - Anfänger-Themen 6
E TXT FILE EINLESEN Java Basics - Anfänger-Themen 4
M Einzelzeichen einlesen Java Basics - Anfänger-Themen 2
C (char) Array einlesen Java Basics - Anfänger-Themen 8
B HTML File einlesen inkl. Bilder? Java Basics - Anfänger-Themen 2
E Mehrere Eingabezeilen gleichzeitig einlesen Java Basics - Anfänger-Themen 7
B HTML Datei einlesen und HTML Code in String wandeln Java Basics - Anfänger-Themen 19
V Schleife für das Einlesen von Werten für int Variablen, die Bestandteil von Arrays sein sollen Java Basics - Anfänger-Themen 16
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
P Text Datei einlesen und übertragen Java Basics - Anfänger-Themen 15
E Einteilung der Räume mit einlesen einer .txt datei Java Basics - Anfänger-Themen 16
P Array einlesen von Konsole Java Basics - Anfänger-Themen 8
D Eingaben in String Array einlesen Java Basics - Anfänger-Themen 12
B CSV einlesen - Parameter a) encoding b) delimiter Java Basics - Anfänger-Themen 7
R Compiler-Fehler Einlesen von Konsolenparameter funtioniert nichtmehr Java Basics - Anfänger-Themen 4
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
J Einlesen von Datei funktioniert nicht Java Basics - Anfänger-Themen 8
H Einlesen Java Basics - Anfänger-Themen 8
H Einlesen von Zahlen Java Basics - Anfänger-Themen 20
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
CptK Datentypen Text Dateien einlesen Java Basics - Anfänger-Themen 3
A Datentypen Unterschiedliche Datentypen in einer Eingabe einlesen Java Basics - Anfänger-Themen 2
R txt Einlesen und Verarbeiten Java Basics - Anfänger-Themen 15
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
M Datei einlesen mit Scanner funktioniert nicht (FileNotFoundException) Java Basics - Anfänger-Themen 6
K Sonderzeichen einlesen Java Basics - Anfänger-Themen 3
L Input/Output XML Datei einlesen (JAXB?) Java Basics - Anfänger-Themen 10
F Zahlen aus Datei einlesen und in Array speichern Java Basics - Anfänger-Themen 2
I Datei einlesen Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben