Wie bestimmen wir die Anzahl der Zeilen in einer text-Datei?
Hallo an alle ich habe einen lokalen Datei die wie folgt aussieht:
AAA Anaa
AAC EL-ARISH
AAE Annaba
AAF APALACHICOLA MUNI AIRPORT
AAG ARAPOTI
AAL Aalborg Airport
AAM Mala Mala
AAN Al Ain
AAQ Anapa
AAR Aarhus Tirstrup Airport
AAT Altay
AAX Araxa
AAY Al Ghaydah
...
Java Tutorials schlägt die Schätzung der Anzahl der Zeilen in einer Datei java.io.Datei.Länge
und teilen Sie das Ergebnis mit 50.
Aber gibt es da nicht mehr "solide" Art und Weise, um die Anzahl der Zeilen in einer text-Datei (noch ohne zu zahlen für den Aufwand der liest die gesamte Datei)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nutzen, um die Schätzung Algorithmus, den Sie haben, ist, dass es sehr schnell: eine
stat(2)
anrufen und dann einige. division. Es werde dauern die gleiche Länge der Zeit und Speicher, egal wie groß oder klein die Datei ist. Aber es ist auch gewaltig schief auf einer großen Anzahl von Eingängen.Wahrscheinlich der beste Weg, um die bestimmte Anzahl ist, um tatsächlich Lesen Sie die gesamte Datei nach
'\n'
Zeichen. Wenn Sie die Datei Lesen in großen binäre Blöcke (denke 16384 bytes oder eine größere macht von beiden) und suchen Sie nach bestimmten byte, der Sie interessiert, kann es gehen, bei etwas Annäherung an die Datenträger-E /a-Bandbreite.\n
Zeichen'\n'
für Sie, das ist eine ausgezeichnete Idee.Können Sie nicht, Lesen Sie einfach die Datei mit einem
FileReader
und zählen Sie die Anzahl der Zeilen Lesen?\n
Charakter wäre schneller als readLines (wie sarnold vorgeschlagen) ?Müssen Sie
BufferedReader
und eincounter
die Schrittweite der Wert 1 für jede readLine().