Heim >Java >javaLernprogramm >Wie kann ich Zeilen in einer großen Java-Datei effizient zählen?
Effizientes Zählen von Zeilen in einer Datei in Java
Problem:
Bei der Arbeit mit großen Bei Datendateien ist es häufig erforderlich, die Anzahl der Zeilen in der Datei zu bestimmen. Es ist zwar möglich, die Datei Zeile für Zeile zu lesen, bis das Ende erreicht ist, diese Methode kann jedoch zeitaufwändig und ineffizient sein.
Lösung:
Effizienter Eine Möglichkeit, die Anzahl der Zeilen in einer Datei in Java zu zählen, besteht darin, den folgenden Code zu verwenden:
public static int countLines(String filename) throws IOException { InputStream is = new BufferedInputStream(new FileInputStream(filename)); try { byte[] c = new byte[1024]; int readChars = is.read(c); if (readChars == -1) { // bail out if nothing to read return 0; } // make it easy for the optimizer to tune this loop int count = 0; while (readChars == 1024) { for (int i = 0; i < 1024;) { if (c[i++] == '\n') { ++count; } } readChars = is.read(c); } // count remaining characters while (readChars != -1) { for (int i = 0; i < readChars; ++i) { if (c[i] == '\n') { ++count; } } readChars = is.read(c); } return count == 0 ? 1 : count; } finally { is.close(); } }
Dieser Code ist deutlich schneller als der naive Ansatz, die Datei zeilenweise zu lesen Linie, insbesondere für große Dateien. Die Verwendung eines gepufferten Eingabestreams und der optimierten Schleife ermöglichen eine effiziente Verarbeitung der Dateidaten und minimieren unnötige Lesevorgänge.
Das obige ist der detaillierte Inhalt vonWie kann ich Zeilen in einer großen Java-Datei effizient zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!