File.ReadLines Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Lee las líneas de un archivo.
Sobrecargas
ReadLines(String) |
Lee las líneas de un archivo. |
ReadLines(String, Encoding) |
Lee las líneas de un archivo que tiene una codificación especificada. |
ReadLines(String)
- 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
Versiones de .NET Framework y .NET Core anteriores a 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 GetInvalidPathChars() 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
.
Se produjo un error de E/S al abrir el archivo.
path
supera la longitud máxima definida por el sistema.
El llamador no dispone del permiso requerido.
path
especifica un archivo que es de solo lectura.
o bien
Esta operación no es compatible con la plataforma actual.
o bien
path
es un directorio.
o bien
El llamador no dispone del permiso requerido.
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 ReadLines método 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;
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);
}
}
}
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
Module Module1
Sub Main()
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.File}\t{f.Line}")
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 Module
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 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:
Realice LINQ to Objects consultas en un archivo para obtener un conjunto filtrado de sus líneas.
Escriba la colección de líneas devuelta en un archivo con el File.WriteAllLines(String, IEnumerable<String>) método o anexe a un archivo existente con el File.AppendAllLines(String, IEnumerable<String>) método .
Create una instancia rellenada inmediatamente de una colección que toma una IEnumerable<T> colección de cadenas para su constructor, como o IList<T> .Queue<T>
Este método usa UTF8 para el valor de codificación.
Se aplica a
ReadLines(String, Encoding)
- Source:
- File.cs
- Source:
- File.cs
- Source:
- File.cs
Lee 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 aplicada al contenido del archivo.
Devoluciones
Todas las líneas del archivo o las líneas que son el resultado de una consulta.
Excepciones
Versiones de .NET Framework y .NET Core anteriores a la 2.1: path
es una cadena de longitud cero, solo contiene espacios en blanco o contiene uno o varios caracteres no válidos según lo definido por el GetInvalidPathChars() 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
.
Se produjo un error de E/S al abrir el archivo.
path
supera la longitud máxima definida por el sistema.
El llamador no dispone del permiso requerido.
path
especifica un archivo que es de solo lectura.
o bien
Esta operación no es compatible con la plataforma actual.
o bien
path
es un directorio.
o bien
El llamador no dispone del permiso requerido.
Comentarios
Use este método para especificar una codificación para usar la lectura del 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:
Realice LINQ to Objects consultas en un archivo para obtener un conjunto filtrado de sus líneas.
Escriba la colección de líneas devuelta en un archivo con el File.WriteAllLines(String, IEnumerable<String>, Encoding) método o anexe a un archivo existente con el File.AppendAllLines(String, IEnumerable<String>, Encoding) método .
Create una instancia rellenada inmediatamente de una colección que toma una IEnumerable<T> colección de cadenas para su constructor, como o IList<T> .Queue<T>
Se aplica a
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de