File.ReadLines Metoda

Definicja

Odczytuje wiersze pliku.

Przeciążenia

Nazwa Opis
ReadLines(String, Encoding)

Odczytaj wiersze pliku, który ma określone kodowanie.

ReadLines(String)

Odczytuje wiersze pliku.

ReadLines(String, Encoding)

Źródło:
File.cs
Źródło:
File.cs
Źródło:
File.cs
Źródło:
File.cs
Źródło:
File.cs

Odczytaj wiersze pliku, który ma określone kodowanie.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ ReadLines(System::String ^ path, System::Text::Encoding ^ encoding);
public static System.Collections.Generic.IEnumerable<string> ReadLines(string path, System.Text.Encoding encoding);
static member ReadLines : string * System.Text.Encoding -> seq<string>
Public Shared Function ReadLines (path As String, encoding As Encoding) As IEnumerable(Of String)

Parametry

path
String

Plik do odczytania.

encoding
Encoding

Kodowanie stosowane do zawartości pliku.

Zwraca

Wszystkie wiersze pliku lub wiersze, które są wynikiem zapytania.

Wyjątki

.NET Framework i .NET Core w wersjach starszych niż 2.1: path jest ciągiem o zerowej długości, zawiera tylko biały znak lub zawiera co najmniej jeden nieprawidłowy znak zdefiniowany przez metodę GetInvalidPathChars().

Parametr path ma wartość null.

path jest nieprawidłowy (na przykład znajduje się na niezamapowanym dysku).

Nie można odnaleźć pliku określonego przez path program .

Wystąpił błąd we/wy podczas otwierania pliku.

path przekracza maksymalną długość zdefiniowaną przez system.

Obiekt wywołujący nie ma wymaganych uprawnień.

path określa plik, który jest tylko do odczytu.

-lub-

Ta operacja nie jest obsługiwana na bieżącej platformie.

-lub-

path jest katalogiem.

-lub-

Obiekt wywołujący nie ma wymaganych uprawnień.

Uwagi

Użyj tej metody, aby określić kodowanie do odczytu pliku.

Metody ReadLines i ReadAllLines różnią się w następujący sposób: w przypadku użycia metody ReadLinesmożna rozpocząć wyliczanie kolekcji ciągów przed zwróceniem całej kolekcji. Gdy używasz metody ReadAllLines, musisz poczekać na zwrócenie całej tablicy ciągów, zanim będzie można uzyskać dostęp do tablicy. W związku z tym podczas pracy z bardzo dużymi plikami ReadLines może być wydajniejszy.

Możesz użyć ReadLines metody , aby wykonać następujące czynności:

Wiersz jest definiowany jako sekwencja znaków zakończonych znakiem powrotu karetki ("\r"), kanału informacyjnego ("\n"), powrotu karetki bezpośrednio po po nim, lub na końcu pliku lub strumienia. Jeśli plik kończy się sekwencją nowego wiersza, nie zostanie zwrócony dodatkowy pusty wiersz. Na przykład plik zawierający "line1\nline2\n" tworzy te same dwa wiersze ("line1" i "line2") jako plik zawierający "line1\nline2".

Dotyczy

ReadLines(String)

Źródło:
File.cs
Źródło:
File.cs
Źródło:
File.cs
Źródło:
File.cs
Źródło:
File.cs

Odczytuje wiersze pliku.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ ReadLines(System::String ^ path);
public static System.Collections.Generic.IEnumerable<string> ReadLines(string path);
static member ReadLines : string -> seq<string>
Public Shared Function ReadLines (path As String) As IEnumerable(Of String)

Parametry

path
String

Plik do odczytania.

Zwraca

Wszystkie wiersze pliku lub wiersze, które są wynikiem zapytania.

Wyjątki

.NET Framework i .NET Core w wersjach starszych niż 2.1: path jest ciągiem o zerowej długości, zawiera tylko biały znak lub zawiera co najmniej jeden nieprawidłowy znak zdefiniowany przez metodę GetInvalidPathChars().

Parametr path ma wartość null.

path jest nieprawidłowy (na przykład znajduje się na niezamapowanym dysku).

Nie można odnaleźć pliku określonego przez path program .

Wystąpił błąd we/wy podczas otwierania pliku.

path przekracza maksymalną długość zdefiniowaną przez system.

Obiekt wywołujący nie ma wymaganych uprawnień.

path określa plik, który jest tylko do odczytu.

-lub-

Ta operacja nie jest obsługiwana na bieżącej platformie.

-lub-

path jest katalogiem.

-lub-

Obiekt wywołujący nie ma wymaganych uprawnień.

Przykłady

Poniższy przykład odczytuje wiersze pliku, aby znaleźć wiersze zawierające określone ciągi.

foreach (string line in File.ReadLines(@"d:\data\episodes.txt"))
{
    if (line.Contains("episode") & line.Contains("2006"))
    {
        Console.WriteLine(line);
    }
}
for line in File.ReadLines @"d:\data\episodes.txt" do
    if line.Contains "episode" && line.Contains "2006" then
        printfn $"{line}"
For Each line As String In File.ReadLines("d:\data\episodes.txt")
    If line.Contains("episode") And line.Contains("2006") Then
        Console.WriteLine(line)
    End If
Next line

W poniższym przykładzie użyto metody ReadLines w zapytaniu LINQ, które wylicza wszystkie katalogi dla plików z rozszerzeniem .txt, odczytuje każdy wiersz pliku i wyświetla wiersz, jeśli zawiera ciąg "Microsoft".

using System;
using System.IO;
using System.Linq;

partial class Example2
{
    static void SearchOptionExample()
    {
        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()} files found.");
        }
        catch (UnauthorizedAccessException uAEx)
        {
            Console.WriteLine(uAEx.Message);
        }
        catch (PathTooLongException pathEx)
        {
            Console.WriteLine(pathEx.Message);
        }
    }
}
open System
open System.IO

try
    // Set a variable to the My Documents path.
    let docPath =
        Environment.GetFolderPath Environment.SpecialFolder.MyDocuments

    let files =
        query {
            for file in Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories) do
            for line in File.ReadLines file do
            where (line.Contains "Microsoft")
            select {| File = file; Line = line |}
        }

    for f in files do
        printfn $"{f.File}\t{f.Line}"
    printfn $"{Seq.length files} files found."

with
| :? UnauthorizedAccessException as uAEx -> printfn $"{uAEx.Message}"
| :? PathTooLongException as pathEx -> printfn $"{pathEx.Message}"
Imports System.IO
Imports System.Xml.Linq

Partial Class Example2
    Shared Sub SearchOptionExample()

        Try
            Dim docPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

            Dim files = From chkFile In Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories)
                        From line In File.ReadLines(chkFile)
                        Where line.Contains("Microsoft")
                        Select New With {.curFile = chkFile, .curLine = line}

            For Each f In files
                Console.WriteLine($"{f.curFile}\t{f.curLine}")
            Next

            Console.WriteLine($"{files.Count} files found.")
        Catch uAEx As UnauthorizedAccessException
            Console.WriteLine(uAEx.Message)
        Catch pathEx As PathTooLongException
            Console.WriteLine(pathEx.Message)
        End Try

    End Sub
End Class

Uwagi

Metody ReadLines i ReadAllLines różnią się w następujący sposób: w przypadku użycia metody można rozpocząć wyliczanie kolekcji ciągów przed zwróceniem całej kolekcji. Gdy używasz ReadLinesReadAllLinesmetody , musisz poczekać na zwrócenie całej tablicy ciągów, zanim będzie można uzyskać dostęp do tablicy. W związku z tym podczas pracy z bardzo dużymi plikami ReadLines może być wydajniejszy.

Możesz użyć ReadLines metody , aby wykonać następujące czynności:

Ta metoda używa UTF8 wartości kodowania.

Wiersz jest definiowany jako sekwencja znaków, po których następuje powrót karetki ("\r"), kanał liniowy ("\n") lub powrót karetki bezpośrednio po nim przez źródło wiersza lub jako ostateczna sekwencja znaków w pliku lub strumieniu, jeśli kończy się bez sekwencji nowego wiersza. Jeśli plik kończy się sekwencją nowego wiersza, nie zostanie zwrócony dodatkowy pusty wiersz. Na przykład plik zawierający "line1\nline2\n" tworzy te same dwa wiersze ("line1" i "line2") jako plik zawierający "line1\nline2".

Dotyczy