File.ReadLines Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Lê as linhas de um arquivo.
Sobrecargas
| Nome | Description |
|---|---|
| ReadLines(String, Encoding) |
Leia as linhas de um arquivo que tem uma codificação especificada. |
| ReadLines(String) |
Lê as linhas de um arquivo. |
ReadLines(String, Encoding)
- Origem:
- File.cs
- Origem:
- File.cs
- Origem:
- File.cs
- Origem:
- File.cs
- Origem:
- File.cs
Leia as linhas de um arquivo que tem uma codificação 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
O arquivo a ser lido.
- encoding
- Encoding
A codificação que é aplicada ao conteúdo do arquivo.
Retornos
Todas as linhas do arquivo ou as linhas que são o resultado de uma consulta.
Exceções
.NET Framework e .NET Core versões anteriores a 2.1: path é uma cadeia de caracteres de comprimento zero, contém apenas espaço em branco ou contém um ou mais caracteres inválidos, conforme definido pelo método GetInvalidPathChars().
path é null.
path é inválido (por exemplo, ele está em uma unidade não mapeada).
O arquivo especificado por path não foi encontrado.
Ocorreu um erro de E/S ao abrir o arquivo.
path excede o comprimento máximo definido pelo sistema.
O chamador não tem a permissão necessária.
path especifica um arquivo que é somente leitura.
-ou-
Não há suporte para essa operação na plataforma atual.
-ou-
path é um diretório.
-ou-
O chamador não tem a permissão necessária.
Comentários
Use esse método para especificar uma codificação para usar a leitura do arquivo.
Os ReadLines métodos e os ReadAllLines métodos diferem da seguinte maneira: quando você usa ReadLines, você pode começar a enumerar a coleção de cadeias de caracteres antes que toda a coleção seja retornada. Ao usar ReadAllLines, você deve aguardar que toda a matriz de cadeias de caracteres seja retornada antes de poder acessar a matriz. Portanto, quando você está trabalhando com arquivos muito grandes, ReadLines pode ser mais eficiente.
Você pode usar o ReadLines método para fazer o seguinte:
- Execute consultas LINQ to Objects em um arquivo para obter um conjunto filtrado de suas linhas.
- Escreva a coleção de linhas retornada em um arquivo com o File.WriteAllLines(String, IEnumerable<String>, Encoding) método ou acrescente-as a um arquivo existente com o File.AppendAllLines(String, IEnumerable<String>, Encoding) método.
- Crie uma instância populada imediatamente de uma coleção que usa uma IEnumerable<T> coleção de cadeias de caracteres para seu construtor, como um IList<T> ou um Queue<T>.
Uma linha é definida como uma sequência de caracteres terminada por um retorno de carro ("\r"), um feed de linha ("\n"), um retorno de carro imediatamente seguido por um feed de linha ou o final do arquivo ou fluxo. Se o arquivo terminar com uma sequência de nova linha, nenhuma linha vazia adicional será retornada. Por exemplo, um arquivo que "line1\nline2\n" contém produz as mesmas duas linhas ("line1" e "line2") que um arquivo que contém "line1\nline2".
Aplica-se a
ReadLines(String)
- Origem:
- File.cs
- Origem:
- File.cs
- Origem:
- File.cs
- Origem:
- File.cs
- Origem:
- File.cs
Lê as linhas de um arquivo.
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
O arquivo a ser lido.
Retornos
Todas as linhas do arquivo ou as linhas que são o resultado de uma consulta.
Exceções
.NET Framework e .NET Core versões anteriores a 2.1: path é uma cadeia de caracteres de comprimento zero, contém apenas espaço em branco ou contém um ou mais caracteres inválidos definidos pelo método GetInvalidPathChars().
path é null.
path é inválido (por exemplo, ele está em uma unidade não mapeada).
O arquivo especificado por path não foi encontrado.
Ocorreu um erro de E/S ao abrir o arquivo.
path excede o comprimento máximo definido pelo sistema.
O chamador não tem a permissão necessária.
path especifica um arquivo que é somente leitura.
-ou-
Não há suporte para essa operação na plataforma atual.
-ou-
path é um diretório.
-ou-
O chamador não tem a permissão necessária.
Exemplos
O exemplo a seguir lê as linhas de um arquivo para localizar linhas que contêm cadeias de caracteres 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
O exemplo a seguir usa o método ReadLines em uma consulta LINQ que enumera todos os diretórios para arquivos que têm uma extensão .txt, lê cada linha do arquivo e exibe a linha se ela contiver a cadeia de caracteres "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
Comentários
Os ReadLines métodos e ReadAllLines os métodos diferem da seguinte maneira: quando você usa ReadLines, você pode começar a enumerar a coleção de cadeias de caracteres antes que toda a coleção seja retornada; quando você usar ReadAllLines, deverá aguardar que toda a matriz de cadeias de caracteres seja retornada antes de poder acessar a matriz. Portanto, quando você está trabalhando com arquivos muito grandes, ReadLines pode ser mais eficiente.
Você pode usar o ReadLines método para fazer o seguinte:
- Execute consultas LINQ to Objects em um arquivo para obter um conjunto filtrado de suas linhas.
- Escreva a coleção de linhas retornada em um arquivo com o File.WriteAllLines(String, IEnumerable<String>) método ou acrescente-as a um arquivo existente com o File.AppendAllLines(String, IEnumerable<String>) método.
- Crie uma instância populada imediatamente de uma coleção que usa uma IEnumerable<T> coleção de cadeias de caracteres para seu construtor, como um IList<T> ou um Queue<T>.
Esse método usa UTF8 para o valor de codificação.
Uma linha é definida como uma sequência de caracteres seguida por um retorno de carro ('\r'), um feed de linha ('\n') ou um retorno de carro imediatamente seguido por um feed de linha, ou como a sequência final de caracteres no arquivo ou fluxo se terminar sem uma sequência de nova linha. Se o arquivo terminar com uma sequência de nova linha, nenhuma linha vazia adicional será retornada. Por exemplo, um arquivo que "line1\nline2\n" contém produz as mesmas duas linhas ("line1" e "line2") que um arquivo que contém "line1\nline2".