File.ReadLines Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přečte řádky souboru.
Přetížení
| Name | Description |
|---|---|
| ReadLines(String, Encoding) |
Přečtěte si řádky souboru, který má zadané kódování. |
| ReadLines(String) |
Přečte řádky souboru. |
ReadLines(String, Encoding)
- Zdroj:
- File.cs
- Zdroj:
- File.cs
- Zdroj:
- File.cs
- Zdroj:
- File.cs
- Zdroj:
- File.cs
Přečtěte si řádky souboru, který má zadané kódování.
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
Soubor, který se má přečíst.
- encoding
- Encoding
Kódování použité pro obsah souboru.
Návraty
Všechny řádky souboru nebo řádky, které jsou výsledkem dotazu.
Výjimky
.NET Framework a verze .NET Core starší než 2.1: path je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků definovaných metodou GetInvalidPathChars().
path je null.
path je neplatný (například je na nemapované jednotce).
Soubor zadaný službou path nebyl nalezen.
Při otevírání souboru došlo k vstupně-výstupní chybě.
path překračuje maximální délku definovanou systémem.
Volající nemá požadované oprávnění.
path určuje soubor, který je jen pro čtení.
-nebo-
Tato operace není na aktuální platformě podporovaná.
-nebo-
path je adresář.
-nebo-
Volající nemá požadované oprávnění.
Poznámky
Tuto metodu použijte k určení kódování pro použití čtení souboru.
Tyto ReadLines metody se ReadAllLines liší následujícím způsobem: Při použití ReadLinesmůžete začít výčet kolekce řetězců před vrácením celé kolekce. Při použití ReadAllLinesmusíte počkat na vrácení celého pole řetězců, než budete mít přístup k poli. Proto při práci s velmi velkými soubory ReadLines může být efektivnější.
Metodu ReadLines můžete použít k provedení následujících kroků:
- Proveďte dotazy LINQ to Objects na soubor, abyste získali filtrovanou sadu jeho řádků.
- Zapište vrácenou kolekci řádků do souboru pomocí File.WriteAllLines(String, IEnumerable<String>, Encoding) metody nebo je připojte k existujícímu souboru s metodou File.AppendAllLines(String, IEnumerable<String>, Encoding) .
- Vytvořte okamžitě naplněnou instanci kolekce, která přebírá IEnumerable<T> kolekci řetězců pro jeho konstruktor, například a IList<T> nebo Queue<T>.
Čára je definována jako posloupnost znaků ukončených návratem na začátek řádku ("\r"), odřádkováním ("\n"), návratem řádku bezprostředně následovaným kanálem řádku nebo koncem souboru nebo datového proudu. Pokud soubor končí sekvencí nového řádku, nebude vrácen žádný další prázdný řádek. Například soubor obsahující "line1\nline2\n" vytvoří stejné dva řádky ("line1" a "line2") jako soubor obsahující "line1\nline2".
Platí pro
ReadLines(String)
- Zdroj:
- File.cs
- Zdroj:
- File.cs
- Zdroj:
- File.cs
- Zdroj:
- File.cs
- Zdroj:
- File.cs
Přečte řádky souboru.
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
Soubor, který se má přečíst.
Návraty
Všechny řádky souboru nebo řádky, které jsou výsledkem dotazu.
Výjimky
.NET Framework a verze .NET Core starší než 2.1: path je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků definovaných metodou GetInvalidPathChars().
path je null.
path je neplatný (například je na nemapované jednotce).
Soubor zadaný službou path nebyl nalezen.
Při otevírání souboru došlo k vstupně-výstupní chybě.
path překračuje maximální délku definovanou systémem.
Volající nemá požadované oprávnění.
path určuje soubor, který je jen pro čtení.
-nebo-
Tato operace není na aktuální platformě podporovaná.
-nebo-
path je adresář.
-nebo-
Volající nemá požadované oprávnění.
Příklady
Následující příklad přečte řádky souboru k vyhledání řádků, které obsahují zadané řetězce.
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
Následující příklad používá metodu ReadLines v dotazu LINQ, která vyčísluje všechny adresáře pro soubory, které mají příponu .txt, přečte každý řádek souboru a zobrazí řádek, pokud obsahuje řetězec "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
Poznámky
Tyto ReadLines metody se ReadAllLines liší takto: Při použití ReadLinesmůžete začít vytvářet výčet řetězců před vrácením celé kolekce. Při použití ReadAllLinesmusíte počkat na vrácení celé pole řetězců, abyste mohli získat přístup k poli. Proto při práci s velmi velkými soubory ReadLines může být efektivnější.
Metodu ReadLines můžete použít k provedení následujících kroků:
- Proveďte dotazy LINQ to Objects na soubor, abyste získali filtrovanou sadu jeho řádků.
- Zapište vrácenou kolekci řádků do souboru pomocí File.WriteAllLines(String, IEnumerable<String>) metody nebo je připojte k existujícímu souboru s metodou File.AppendAllLines(String, IEnumerable<String>) .
- Vytvořte okamžitě naplněnou instanci kolekce, která přebírá IEnumerable<T> kolekci řetězců pro jeho konstruktor, například a IList<T> nebo Queue<T>.
Tato metoda se používá UTF8 pro hodnotu kódování.
Řádek je definován jako posloupnost znaků následovaných návratem na začátek řádku ("\r'), informačním kanálem řádku ('\n') nebo návratem na začátek řádku bezprostředně za kanálem řádku nebo jako poslední posloupnost znaků v souboru nebo datovém proudu, pokud končí bez sekvence nového řádku. Pokud soubor končí sekvencí nového řádku, nebude vrácen žádný další prázdný řádek. Například soubor obsahující "line1\nline2\n" vytvoří stejné dva řádky ("line1" a "line2") jako soubor obsahující "line1\nline2".