Auf Englisch lesen

Freigeben über


File.ReadLines Methode

Definition

Liest die Zeilen einer Datei.

Überlädt

ReadLines(String, Encoding)

Lesen Sie die Zeilen einer Datei mit einer angegebenen Codierung.

ReadLines(String)

Liest die Zeilen einer Datei.

ReadLines(String, Encoding)

Quelle:
File.cs
Quelle:
File.cs
Quelle:
File.cs

Lesen Sie die Zeilen einer Datei mit einer angegebenen Codierung.

C#
public static System.Collections.Generic.IEnumerable<string> ReadLines (string path, System.Text.Encoding encoding);

Parameter

path
String

Die zu lesende Datei.

encoding
Encoding

Die Codierung, die auf den Inhalt der Datei angewendet wird.

Gibt zurück

Alle Zeilen der Datei oder die Zeilen, die das Ergebnis einer Abfrage sind.

Ausnahmen

.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path ist eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen, wie durch die GetInvalidPathChars()-Methode definiert.

path ist null.

path ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).

Die durch path angegebene Datei wurde nicht gefunden.

Beim Öffnen der Datei ist ein E/A-Fehler aufgetreten.

path die vom System definierte maximale Länge überschreitet.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

path gibt eine Schreibgeschützte Datei an.

-oder-

Dieser Vorgang wird auf der aktuellen Plattform nicht unterstützt.

-oder-

path ist ein Verzeichnis.

-oder-

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Hinweise

Verwenden Sie diese Methode, um eine Codierung anzugeben, die zum Lesen der Datei verwendet werden soll.

Die methoden ReadLines und ReadAllLines unterscheiden sich wie folgt: Wenn Sie ReadLinesverwenden, können Sie mit dem Aufzählen der Auflistung von Zeichenfolgen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Wenn Sie ReadAllLinesverwenden, müssen Sie warten, bis das gesamte Array von Zeichenfolgen zurückgegeben wird, bevor Sie auf das Array zugreifen können. Daher kann ReadLines effizienter sein, wenn Sie mit sehr großen Dateien arbeiten.

Sie können die ReadLines-Methode verwenden, um Folgendes auszuführen:

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

ReadLines(String)

Quelle:
File.cs
Quelle:
File.cs
Quelle:
File.cs

Liest die Zeilen einer Datei.

C#
public static System.Collections.Generic.IEnumerable<string> ReadLines (string path);

Parameter

path
String

Die zu lesende Datei.

Gibt zurück

Alle Zeilen der Datei oder die Zeilen, die das Ergebnis einer Abfrage sind.

Ausnahmen

.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path ist eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen, das von der GetInvalidPathChars()-Methode definiert ist.

path ist null.

path ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).

Die durch path angegebene Datei wurde nicht gefunden.

Beim Öffnen der Datei ist ein E/A-Fehler aufgetreten.

path die vom System definierte maximale Länge überschreitet.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

path gibt eine Schreibgeschützte Datei an.

-oder-

Dieser Vorgang wird auf der aktuellen Plattform nicht unterstützt.

-oder-

path ist ein Verzeichnis.

-oder-

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Beispiele

Im folgenden Beispiel werden die Zeilen einer Datei gelesen, um Zeilen zu finden, die angegebene Zeichenfolgen enthalten.

C#
foreach (string line in File.ReadLines(@"d:\data\episodes.txt"))
{
    if (line.Contains("episode") & line.Contains("2006"))
    {
        Console.WriteLine(line);
    }
}

Im folgenden Beispiel wird die ReadLines-Methode in einer LINQ-Abfrage verwendet, die alle Verzeichnisse für Dateien aufzählt, die eine .txt Erweiterung aufweisen, jede Zeile der Datei liest und die Zeile anzeigt, wenn sie die Zeichenfolge "Microsoft" enthält.

C#
using System;
using System.IO;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            // Set a variable to the My Documents path.
            string docPath =
            Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

            var files = from file in Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories)
                        from line in File.ReadLines(file)
                        where line.Contains("Microsoft")
                        select new
                        {
                            File = file,
                            Line = line
                        };

            foreach (var f in files)
            {
                Console.WriteLine($"{f.File}\t{f.Line}");
            }
            Console.WriteLine($"{files.Count().ToString()} files found.");
        }
        catch (UnauthorizedAccessException uAEx)
        {
            Console.WriteLine(uAEx.Message);
        }
        catch (PathTooLongException pathEx)
        {
            Console.WriteLine(pathEx.Message);
        }
    }
}

Hinweise

Die methoden ReadLines und ReadAllLines unterscheiden sich wie folgt: Wenn Sie ReadLinesverwenden, können Sie mit dem Aufzählen der Auflistung von Zeichenfolgen beginnen, bevor die gesamte Auflistung zurückgegeben wird; Wenn Sie ReadAllLinesverwenden, müssen Sie warten, bis das gesamte Array von Zeichenfolgen zurückgegeben wird, bevor Sie auf das Array zugreifen können. Daher kann ReadLines effizienter sein, wenn Sie mit sehr großen Dateien arbeiten.

Sie können die ReadLines-Methode verwenden, um Folgendes auszuführen:

Diese Methode verwendet UTF8 für den Codierungswert.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0