File.ReadLines Método

Definición

Lee las líneas de un archivo.

Sobrecargas

Nombre Description
ReadLines(String, Encoding)

Lea las líneas de un archivo que tiene una codificación especificada.

ReadLines(String)

Lee las líneas de un archivo.

ReadLines(String, Encoding)

Source:
File.cs
Source:
File.cs
Source:
File.cs
Source:
File.cs
Source:
File.cs

Lea las líneas de un archivo que tiene una codificación especificada.

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)

Parámetros

path
String

Archivo que se va a leer.

encoding
Encoding

Codificación que se aplica al contenido del archivo.

Devoluciones

Todas las líneas del archivo o las líneas que son el resultado de una consulta.

Excepciones

.NET Framework y .NET Core versiones anteriores a la 2.1: path es una cadena de longitud cero, contiene solo espacios en blanco o contiene uno o varios caracteres no válidos definidos por el método GetInvalidPathChars().

path es null.

path no es válido (por ejemplo, está en una unidad no asignada).

No se encontró el archivo especificado por path .

Error de E/S al abrir el archivo.

path supera la longitud máxima definida por el sistema.

El autor de la llamada no tiene el permiso necesario.

path especifica un archivo que es de solo lectura.

-o-

Esta operación no se admite en la plataforma actual.

-o-

path es un directorio.

-o-

El autor de la llamada no tiene el permiso necesario.

Comentarios

Use este método para especificar una codificación que se usará para leer el archivo.

Los ReadLines métodos y ReadAllLines difieren de la siguiente manera: cuando se usa ReadLines, puede empezar a enumerar la colección de cadenas antes de que se devuelva toda la colección. Cuando se usa ReadAllLines, debe esperar a que se devuelva toda la matriz de cadenas para poder acceder a la matriz. Por lo tanto, cuando se trabaja con archivos muy grandes, ReadLines puede ser más eficaz.

Puede usar el ReadLines método para hacer lo siguiente:

Una línea se define como una secuencia de caracteres terminada por un retorno de carro ('\r'), un avance de línea ('\n'), un retorno de carro inmediatamente seguido de una fuente de líneas o el final del archivo o flujo. Si el archivo finaliza con una secuencia de nueva línea, no se devuelve ninguna línea vacía adicional. Por ejemplo, un archivo que contiene "line1\nline2\n" genera las mismas dos líneas ("line1" y "line2") que un archivo que contiene "line1\nline2".

Se aplica a

ReadLines(String)

Source:
File.cs
Source:
File.cs
Source:
File.cs
Source:
File.cs
Source:
File.cs

Lee las líneas de un archivo.

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)

Parámetros

path
String

Archivo que se va a leer.

Devoluciones

Todas las líneas del archivo o las líneas que son el resultado de una consulta.

Excepciones

.NET Framework y .NET Core versiones anteriores a la 2.1: es una cadena de longitud cero, contiene solo espacios en blanco o contiene uno o varios caracteres no válidos definidos por el método />

path es null.

path no es válido (por ejemplo, está en una unidad no asignada).

No se encontró el archivo especificado por path .

Error de E/S al abrir el archivo.

path supera la longitud máxima definida por el sistema.

El autor de la llamada no tiene el permiso necesario.

path especifica un archivo que es de solo lectura.

-o-

Esta operación no se admite en la plataforma actual.

-o-

path es un directorio.

-o-

El autor de la llamada no tiene el permiso necesario.

Ejemplos

En el ejemplo siguiente se leen las líneas de un archivo para buscar líneas que contienen cadenas especificadas.

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

En el ejemplo siguiente se usa el método ReadLines en una consulta LINQ que enumera todos los directorios de los archivos que tienen una extensión .txt, lee cada línea del archivo y muestra la línea si contiene la cadena "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

Comentarios

Los ReadLines métodos y ReadAllLines difieren de la siguiente manera: cuando se usa ReadLines, puede empezar a enumerar la colección de cadenas antes de que se devuelva toda la colección; cuando se usa ReadAllLines, debe esperar a que se devuelva toda la matriz de cadenas antes de poder tener acceso a la matriz. Por lo tanto, cuando se trabaja con archivos muy grandes, ReadLines puede ser más eficaz.

Puede usar el ReadLines método para hacer lo siguiente:

Este método usa UTF8 para el valor de codificación.

Una línea se define como una secuencia de caracteres seguida de un retorno de carro ('\r'), un avance de línea ('\n'), o un retorno de carro inmediatamente seguido de una fuente de líneas, o como secuencia final de caracteres en el archivo o secuencia si termina sin una secuencia de nueva línea. Si el archivo finaliza con una secuencia de nueva línea, no se devuelve ninguna línea vacía adicional. Por ejemplo, un archivo que contiene "line1\nline2\n" genera las mismas dos líneas ("line1" y "line2") que un archivo que contiene "line1\nline2".

Se aplica a