# Datei zeilenweise einlesen, aber nicht die erste Zeile!



## FoolMoon (10. Feb 2010)

Hallo

ich habe eine CSV Datei und weiß das in der ersten Zeile unwichtiges steht. Nun würde ich gerne sinnvoll die erste Zeile überspringen. Selbstverständlich könnte ich in meiner while-Schleife eine Abfrage einbauen. Allerdings durchlaufe ich dann jedesmal die Abfrage und finde das doof bei 10.000 Zeilen.

Nun hab ich einen kleinen Blick in die API geworfen und vermute das ich das Problem elegant mit dem LineNumberReader lösen könnte. Meine Idee ist einfach bei dr zweiten Zeile loszulegen.

Aktueller Code:

```
private void dateiLesen(File dateiPflad) {
		String zeile;
		try {
			BufferedReader in = new BufferedReader(new FileReader(dateiPflad));

			while ((zeile = in.readLine()) != null) {
				zeileAnalysieren(zeile);
			}
			in.close();
		} catch (Exception e) {
			System.out.println("Error beim einlesen: " +e);
		}
    }
```

Ich hab versucht das dumme Ding einzubauen, allerdings funktioniert das irgendwie nicht. Ist mein Ansatz überhaupt elegant? Kennt ihr einen besseren? Wie muss ich den LineNumberReader verwenden um das Problem zu lösen?


----------



## eRaaaa (10. Feb 2010)

??
Du musst doch keine Abfrage machen, bei einer/bzw. der ersten Zeile ist das doch ganz trivial...
Hau einfach ein readLine() vorher ins Leere 


```
private static void dateiLesen(File dateiPflad) {
        String zeile;
        try {
            BufferedReader in = new BufferedReader(new FileReader(dateiPflad));
            in.readLine(); //erste Zeile interessiert uns nicht
            while ((zeile = in.readLine()) != null) {
              zeileAnalysieren(zeile);
            }
            in.close();
        } catch (Exception e) {
            System.out.println("Error beim einlesen: " +e);
        }
    }
```


----------



## FoolMoon (10. Feb 2010)

eRaaaa hat gesagt.:


> ??
> Du musst doch keine Abfrage machen, bei einer/bzw. der ersten Zeile ist das doch ganz trivial...
> Hau einfach ein readLine() vorher ins Leere



Genialooooooo!!!! :lol:

Und ich hab eine Stunde in der API nachgeschaut. Vielen Dank für den Tipp. :applaus:


----------



## eRaaaa (10. Feb 2010)

FoolMoon hat gesagt.:


> Und ich hab eine Stunde in der API nachgeschaut. Vielen Dank für den Tipp. :applaus:



Nochmal zu dem LineNumberReader: Der wäre hier auch nicht hilfreich, da hättest du noch 30 Jahre dran tüfteln können  Der zählt für einen nur die gelesen Zeilen, damit man sich diese nicht selbst merken muss falls man das brauchen sollte. Mit 
	
	
	
	





```
setLineNumber(int lineNumber)
```
 setzt man intern nur den Zähler auf diesen Wert, das hat aber nichts mit der Position des Lesens innerhalb des Files/Streams zu tun! 

So und nun gute Nacht ! :gaen:


----------

