OutOfBoundsException

Supra

Bekanntes Mitglied
Java:
Moin ich lerne java und bin grade bei Dateien lesen.
Mein code:
[code=Java]
import java.util.*;
import java.io.*;
class ReadFile
{

    public static void main(String[] args)throws IOException
    {
        String[] kundenDaten;
        try
        {
            String kundenLine;

            BufferedReader bfr = new BufferedReader(new FileReader("kundenstamm.csv"));
            while((kundenLine = bfr.readLine()) != null)
            {
                
                    kundenDaten = kundenLine.split(";");
                    System.out.println(kundenDaten[1]);
  
            }
        }
        catch(FileNotFoundException e)
        {
        }
    }
}

Beispiele für eine Kundendatei:

--Kommentar
100000000;Mustermann;Peter
100000001;Peter;Otto
100000002;Meyer;Erna

Das problem ist wenn ich mir position[1] ausgeben lasse kriege ich eine Fehlermeldung "outOfBounds...", aber "[0]" würde gehen kann mir einer bischen helfen? Es geht halt darum aus Dateien zu lesen, Kunden zu entfernen etc.
Wäre nett 🙂.
 
Du musst ja nur, z.B. mittels equals, contains, startsWidth... überprüfen ob die Zeile eine Kommentarzeile ist und in dem Fall ignorieren.
 
Habe mir sowas wie
Code:
if(kundenLine == null)
dann soll er nichts machen, sowas in der richtung aber das funktioniert nicht :S
 
Achso, habe gedachte das steht für ende der Datei. Also sicherlich weis ich was null ist aber ich habe zwischen den Daten auch eine leere Zeile würde er die while schleife dann nicht abbrechen weil die bedinung dann nicht mehr stimmt? Was er aber nich tut.
 
Achso, habe gedachte das steht für ende der Datei. Also sicherlich weis ich was null ist aber ich habe zwischen den Daten auch eine leere Zeile würde er die while schleife dann nicht abbrechen weil die bedinung dann nicht mehr stimmt? Was er aber nich tut.
Versteh jetzt nicht was die Fragestellung mit dem Problem zu tun hat. Vermutlich verstehe ich die Frage gar nicht.
Die while Schleife läuft solange bis es nichts mehr zu lesen gibt, im Falle einer txt Datei bis zur letzten Zeile. In in dem Code des ersten Postings passt die Schleife. Jetzt musst Du nur noch eine Fallunterscheidung in der Schleife einfügen. Eine Leerzeile ist nicht null sondern ""
 
Java:
if(kundenLine.equals("-")||kundenLine.equals(""))
{
}
else
{
kundenDaten = kundenLine.split(";");
System.out.println(kundenDaten[1]);
}
Also so habe ich jetzt gedacht wenn die if bedingung stimmt dann soll er nix machen, aber ich glaube ich bin auf dem falschen weg.
 
So, wie es am Anfang war, aber nach dem "split" ein
Java:
if (kundenDaten.length != 2)
{
    System.out.println("Aaaaahhh, da steht was falsches: '"+kundenLine+"' *flenn* ");
}
else
{
    ...
}
könnte schon reichen
 
Java:
if(kundenLine.contains(";")){
kundenDaten = kundenLine.split(";");
for(String temp : kundenDaten){
System.out.println(temp);
}
}

Läuft das fehlerfrei durch? Überprüf einfach auf das Vorkommen von ";".
 
Zuletzt bearbeitet:
> if(kundenLine.equals("-")||kundenLine.equals(""))

ginge ansonsten nur für genau zwei bestimmte Zeilen,
gibt ja auch anderen Code, etwa startsWith("-")
 
Ah ok ssoul26 sieht so aus als enn es klappen würde, das mit dem contains kenn ich noch nicht, nur mal gesehen 🙂. und danke SlaterB das startswuth guck ich auch nochmal an.
 

Zurück
Oben