File.ReadLines Methode

Definitie

Leest de regels van een bestand.

Overloads

Name Description
ReadLines(String)

Leest de regels van een bestand.

ReadLines(String, Encoding)

Lees de regels van een bestand met een opgegeven codering.

ReadLines(String)

Leest de regels van een bestand.

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)

Parameters

path
String

Het bestand dat moet worden gelezen.

Retouren

Alle regels van het bestand of de regels die het resultaat van een query zijn.

Uitzonderingen

.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens die zijn gedefinieerd door de methode GetInvalidPathChars().

path is null.

path is ongeldig (bijvoorbeeld op een niet-toegewezen station).

Het bestand dat is opgegeven door path is niet gevonden.

Er is een I/O-fout opgetreden tijdens het openen van het bestand.

path overschrijdt de door het systeem gedefinieerde maximumlengte.

De beller heeft niet de vereiste machtiging.

path geeft een bestand op dat alleen-lezen is.

– of –

Deze bewerking wordt niet ondersteund op het huidige platform.

– of –

path is een map.

– of –

De beller heeft niet de vereiste machtiging.

Voorbeelden

In het volgende voorbeeld worden de regels van een bestand gelezen om regels te vinden die opgegeven tekenreeksen bevatten.

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

In het volgende voorbeeld wordt de methode ReadLines gebruikt in een LINQ-query waarmee alle mappen worden opgesomd voor bestanden met een .txt-extensie, elke regel van het bestand wordt gelezen en de regel wordt weergegeven als deze de tekenreeks 'Microsoft' bevat.

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

Opmerkingen

De ReadLines en ReadAllLines methoden verschillen als volgt: Wanneer u gebruikt ReadLines, kunt u beginnen met het inventariseren van de verzameling tekenreeksen voordat de hele verzameling wordt geretourneerd. Wanneer u deze gebruikt ReadAllLines, moet u wachten tot de hele matrix met tekenreeksen wordt geretourneerd voordat u toegang hebt tot de matrix. Daarom kan het efficiënter zijn wanneer u met zeer grote bestanden ReadLines werkt.

U kunt de ReadLines methode gebruiken om het volgende te doen:

Deze methode gebruikt UTF8 voor de coderingswaarde.

Een regel wordt gedefinieerd als een reeks tekens gevolgd door een regelterugloop ('\r'), een regelinvoer ('\n'), of een regelterugloop direct gevolgd door een regelinvoer, of als de laatste reeks tekens in het bestand of de stroom als deze eindigt zonder een nieuwe regelreeks. Als het bestand eindigt met een nieuwe regelreeks, wordt er geen extra lege regel geretourneerd. Een bestand dat bijvoorbeeld dezelfde twee regels ( en ) bevat "line1\nline2\n" als een bestand met "line1\nline2"."line2""line1"

Van toepassing op

ReadLines(String, Encoding)

Lees de regels van een bestand met een opgegeven codering.

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)

Parameters

path
String

Het bestand dat moet worden gelezen.

encoding
Encoding

De codering die wordt toegepast op de inhoud van het bestand.

Retouren

Alle regels van het bestand of de regels die het resultaat van een query zijn.

Uitzonderingen

.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens zoals gedefinieerd door de methode GetInvalidPathChars().

path is null.

path is ongeldig (bijvoorbeeld op een niet-toegewezen station).

Het bestand dat is opgegeven door path is niet gevonden.

Er is een I/O-fout opgetreden tijdens het openen van het bestand.

path overschrijdt de door het systeem gedefinieerde maximumlengte.

De beller heeft niet de vereiste machtiging.

path geeft een bestand op dat alleen-lezen is.

– of –

Deze bewerking wordt niet ondersteund op het huidige platform.

– of –

path is een map.

– of –

De beller heeft niet de vereiste machtiging.

Opmerkingen

Gebruik deze methode om een codering op te geven om het bestand te lezen.

De ReadLines en ReadAllLines methoden verschillen als volgt: Wanneer u gebruikt ReadLines, kunt u beginnen met het inventariseren van de verzameling tekenreeksen voordat de hele verzameling wordt geretourneerd. Wanneer u deze functie gebruikt ReadAllLines, moet u wachten totdat de hele matrix met tekenreeksen wordt geretourneerd voordat u toegang hebt tot de matrix. Daarom kan het efficiënter zijn wanneer u met zeer grote bestanden ReadLines werkt.

U kunt de ReadLines methode gebruiken om het volgende te doen:

Een regel wordt gedefinieerd als een reeks tekens die worden beëindigd door een regelterugloop ('\r'), een regelinvoer ('\n'), een regelterugloop direct gevolgd door een regelinvoer, of het einde van het bestand of de stroom. Als het bestand eindigt met een nieuwe regelreeks, wordt er geen extra lege regel geretourneerd. Een bestand dat bijvoorbeeld dezelfde twee regels ( en ) bevat "line1\nline2\n" als een bestand met "line1\nline2"."line2""line1"

Van toepassing op