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í.
Načte řádky souboru.
Přetížení
ReadLines(String) |
Načte řádky souboru. |
ReadLines(String, Encoding) |
Čtení řádků souboru se zadaným kódováním |
ReadLines(String)
- Zdroj:
- File.cs
- Zdroj:
- File.cs
- Zdroj:
- File.cs
Nač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 .NET Core verze 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 nenamapované jednotce).
Soubor určený nástrojem path
nebyl nalezen.
Při otevírání souboru došlo ke vstupně-výstupní chybě.
path
překračuje systémem definovanou maximální délku.
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 načte řádky souboru a vyhledá řádky, 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ý vytvoří výčet všech adresářů 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;
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
Poznámky
ReadLines Metody a ReadAllLines se liší následujícím způsobem: Při použití ReadLinesmůžete spustit výčet kolekce řetězců před vrácením celé kolekce; při použití ReadAllLinespříkazu musíte před přístupem k poli počkat na vrácení celého pole řetězců. Proto může být práce s velmi velkými soubory ReadLines efektivnější.
Pomocí metody můžete ReadLines provést následující akce:
Provedením LINQ to Objects dotazů na soubor získáte 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 pomocí File.AppendAllLines(String, IEnumerable<String>) metody .
Create okamžitě naplněnou instanci kolekce, která přebírá IEnumerable<T> kolekci řetězců pro svůj konstruktor, například nebo IList<T>Queue<T>.
Tato metoda používá UTF8 hodnotu kódování.
Platí pro
ReadLines(String, Encoding)
- Zdroj:
- File.cs
- Zdroj:
- File.cs
- Zdroj:
- File.cs
Čtení řádků souboru se zadaným kódováním
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é na obsah souboru.
Návraty
Všechny řádky souboru nebo řádky, které jsou výsledkem dotazu.
Výjimky
.NET Framework a .NET Core verze 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 nenamapované jednotce).
Soubor určený nástrojem path
nebyl nalezen.
Při otevírání souboru došlo ke vstupně-výstupní chybě.
path
překračuje systémem definovanou maximální délku.
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
Tato metoda slouží k určení kódování pro použití čtení souboru.
Metody ReadLines a ReadAllLines se liší následujícím způsobem: Pokud použijete ReadLines, můžete začít s vytvářením výčtu kolekce řetězců před vrácením celé kolekce. Při použití příkazu ReadAllLinesmusíte před přístupem k poli počkat na vrácení celého pole řetězců. Proto může být práce s velmi velkými soubory ReadLines efektivnější.
Pomocí metody můžete ReadLines provést následující akce:
Provedením LINQ to Objects dotazů na soubor získáte 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 pomocí File.AppendAllLines(String, IEnumerable<String>, Encoding) metody .
Create okamžitě naplněnou instanci kolekce, která přebírá IEnumerable<T> kolekci řetězců pro svůj konstruktor, například nebo IList<T>Queue<T>.
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro