Heim >Java >javaLernprogramm >Wie kann ich Zeilen in einer großen Java-Datei effizient zählen?

Wie kann ich Zeilen in einer großen Java-Datei effizient zählen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-26 09:30:11242Durchsuche

How Can I Efficiently Count Lines in a Large Java File?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn