# Zeilen zählen



## smau (20. Okt 2009)

Hallo zusammen,

ich möchte in einer Exceldatei die Zeilen zählen bis eine leere Zeile, also das Ende, erreicht ist. Nur der Zähler hört nicht auf zu zählen.
Mein Quellcode dafür sieht wie folgt aus:


```
BufferedReader datei = new BufferedReader(new FileReader(dateiname));
        String z = datei.readLine();

        
        int anzahl = 0;
        while (z != null) {
            anzahl = anzahl + 1;
        }
```


----------



## VeilOfOblivion (20. Okt 2009)

Du mußt das Lesen auch in die Schleife einbauen. So liest er eine Zeile und fertig. Es ändert sich nie wieder etwas an deiner Variable z.

Viele Grüße,
VeilOfOblivion


----------



## faetzminator (20. Okt 2009)

Schöner Quellcode- funktioniert aber nicht.
Für eine simple Textdatei wär es...

```
String z = null;
int anzahl = 0;
while ((z = datei.readLine()) != null) {
    anzahl++;
}
```
...aber versuch doch mal, eine Excel Datei mit dem Editor zu öffnen  Tipp: Apache POI - Java API To Access Microsoft Format Files


----------



## smau (20. Okt 2009)

VeilOfOblivion hat gesagt.:


> Du mußt das Lesen auch in die Schleife einbauen. So liest er eine Zeile und fertig. Es ändert sich nie wieder etwas an deiner Variable z.
> 
> Viele Grüße,
> VeilOfOblivion


Stimmt, der liest ja garnicht die nächste Zeile ein.
Das probier ich direkt mal aus...


----------



## kirdie (17. Nov 2009)

Gibt es dafür auch in den Javabibliotheken eine Methode (sowas wie file.getNumberOfLines())?  Und ist das von der Geschwindigkeit optimal?
Mein Problem ist, dass ich eine 1,7 GB große Textdatei habe und da zieht sich das schon mal hin. Würde mich interessieren, ob man da noch etwas besser machen kann.


----------



## VeilOfOblivion (17. Nov 2009)

@kirdie: Versuchs mal mit LineNumberReader.. Info gibts hier: LineNumberReader (Java Platform SE 6)


----------



## kirdie (18. Nov 2009)

@Veil: Hab ich schon, aber das einzige was ich da gefunden habe war "setLineNumber()" und "getLineNumber()". Wie heißt denn die Funktion, mit der ich die Anzahl der Zeilen in der Datei auslesen kann?


----------



## VeilOfOblivion (18. Nov 2009)

@kirdie : Du könntest z.B. eine Schleife ohne Anweisung durchlaufen lassen und dann nach der Schleife mit getLineNumber() die momentane und somit letzte Zeilennummer auslesen. Ich weiß nicht ob das schneller geht als deine ursprüngliche Version. Aber zumindest brauchst du mal keine zusätzliche Variable


----------

