Heim > Backend-Entwicklung > C++ > Wie kann ich die Zeile der Textdateien in C#effizient lesen?

Wie kann ich die Zeile der Textdateien in C#effizient lesen?

Mary-Kate Olsen
Freigeben: 2025-01-29 08:27:09
Original
929 Leute haben es durchsucht

How Can I Efficiently Read Text Files Line by Line in C#?

C#Lesen Sie effizient Textdateien

In der .NET C#-Enumgebung ist das Lesen von Textdateien nacheinander eine gemeinsame Aufgabe. In diesem Artikel werden verschiedene Methoden untersucht und seine Effizienz analysiert.

Verwenden Sie StreamReader.readline

Ihre aktuelle Methode verwendet und die Puffergröße wird auf 128 eingestellt. Der Benchmark -Test zeigt jedoch, dass eine Erhöhung der Größe des Puffers auf 1024 (Standard) oder 4096 (NTFS -Cluster) die Leistung erheblich verbessern kann. Das folgende Codefragment zeigt dies:

StreamReader.ReadLine Verwenden Sie Datei.Readlines

<code class="language-csharp">const Int32 BufferSize = 128;
using (var fileStream = File.OpenRead(fileName))
using (var streamReader = new StreamReader(fileStream, Encoding.UTF8, true, BufferSize)) {
    String line;
    while ((line = streamReader.ReadLine()) != null)
    {
      // 处理每一行
    }
}</code>
Nach dem Login kopieren

Diese Methode verwendet intern im Vergleich zu den kleineren im Pufferbereich wird die Leistung verbessert. Es verwendet Iteratoren und reduziert den Speicherverbrauch.

StreamReader Verwenden Sie Datei.readallLines StreamReader.ReadLine

<code class="language-csharp">var lines = File.ReadLines(fileName);
foreach (var line in lines)
  // 处理每一行</code>
Nach dem Login kopieren
ähnelt , gibt jedoch ein String -Array anstelle von

zurück. Diese Methode erfordert mehr Speicher, ermöglicht jedoch einen zufälligen Zugriff.

verwenden String.split

File.ReadLines IEnumerable<string> Obwohl sehr bequem ist, ist seine Geschwindigkeit beim Lesen großer Dateien deutlich langsamer, wie im folgenden Beispiel gezeigt:

<code class="language-csharp">var lines = File.ReadAllLines(fileName);
for (var i = 0; i < lines.Length; i++)
  // 处理每一行</code>
Nach dem Login kopieren

Schlussfolgerung Kurz gesagt, zum Lesen von Textdateien nacheinander wird

für seine Einfachheit und Effizienz empfohlen. Wenn Sie die Option Sharing anpassen müssen, sollten Sie die

mit einer entsprechenden Puffergröße verwenden. Der Benchmark -Test muss jedoch durchgeführt werden, um die Lösung zu bestimmen, die für Ihre spezifischen Anforderungen am besten geeignet ist. String.Split

Das obige ist der detaillierte Inhalt vonWie kann ich die Zeile der Textdateien in C#effizient lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage