Problem -> Dateien einlesen

evoleena

Erfahrenes Mitglied
Hallo Ihrs,

Bin Newbie in Java und bin gerade dabei eine Datei Zeilenweise auszulesen, und jede Zeile dann schritt für Schritt zu lesen, und ein Objekt einer Klasse anzulegen, aber ich stehe gerad völlig auf dem Schlauch, ich weiß nicht mehr weiter

soweit bin ich gerade
Code:
String zeile ;
reader = new FileReader(file);
BufferedReader datenStrom = new BufferedReader(reader);
while((zeile = datenStrom.readLine()) != null){
      System.out.println("READ: "+zeile);
      //Zeichenweise durchlaufen?
}

so nun müsste ich in der while Schleife die Zeile Zeichen für Zeichen auslesen, und immer wenn eine Leerzeichen kommt, müsste ich dann zur nächsten Eigenschaft des Objektes gehen und es anlegen.

Wie kann ich das umsetzen?

meine Datei sieht z.B. so aus
Code:
1 242 119 null
1 282 139 null
1 269 195 null
 

Xandro

- Mistkerl -
Moin,

schau Dir mal die Methode String.split() an.
Damit kannst Du die aktuelle Zeile an Hand der Leerzeichen zerlegen und
die einzelnen Werte somit abrufen.

Gruß,
Xan
 

evoleena

Erfahrenes Mitglied
@Xandro bist mal wieder mein Retter in der Not. Danke dir. Vielleicht kannst du mir gleich nochmal helfen.

Gleich eine weitere Frage die mir im Zusammenhang mit meiner Datei auffällt.
Ich speichere von meinen Objekten die Farbe mit.

So:
Code:
String.valueOf(c.getFarbe())

das steht dann so in der Datei
Code:
java.awt.Color[r=66,g=46,b=133]

wenn ich die Datei nun lesen bekomm ich ja das String Array da hab ich versucht das so zu konvertieren
Code:
Color.getColor(zeichen[3])

Aber leider bleibt es schwarz. Was muss ich ändern damit das mit der Farbe klappt?

Gruß
Evo

PS: kannst du dir den Thread vllt. nochmal anschauen!
 
Zuletzt bearbeitet:

Xandro

- Mistkerl -
Moin,

ich werde das ganz anders angehen.
Du speicherst ja das komplette Color-Objekt, was ich für ziemlich überflüssig halte.
Zieh Dir die einzelnen Farbanteile (RGB) aus Deiner Farbe per Color.getRed(), Color.getGreen(), Color.getBlue() und
speicher diese getrennt durch ein Zeichen ab.
Eventuell kannst Du auch mit Color.getRGB() arbeiten, aber das habe ich noch nicht getestet.

Und wenn Du die Werte später benutzen möchtest, legst Du ein neues Color-Objekt an:
Java:
Color c = new Color(zeichen[0], zeichen[1], zeichen[2])
Edit: Beim Beispiel zeichen natürlich noch in Integer umwandeln ;-)

So wäre es wahrscheinlich am Einfachsten.

Gruß,
Xan
 
Zuletzt bearbeitet:

evoleena

Erfahrenes Mitglied
Thanks und wieder hast du eine Lösung geliefert die ich verstanden hab und umsetzen konnte.
Danke dir

Gruß
Evo