File.ReadLines Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Odczytuje wiersze pliku.
Przeciążenia
| ReadLines(String, Encoding) |
Odczytaj wiersze pliku, który ma określone kodowanie. |
| ReadLines(String) |
Odczytuje wiersze pliku. |
ReadLines(String, Encoding)
- Źródło:
- File.cs
- Źródło:
- File.cs
- Źródło:
- File.cs
Odczytaj wiersze pliku, który ma określone kodowanie.
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
Plik do odczytania.
- encoding
- Encoding
Kodowanie stosowane do zawartości pliku.
Zwraca
Wszystkie wiersze pliku lub wiersze, które są wynikiem zapytania.
Wyjątki
.NET Framework i .NET Core w wersjach starszych niż 2.1: path jest ciągiem o zerowej długości, zawiera tylko biały znak lub zawiera jeden lub więcej nieprawidłowych znaków zdefiniowanych przez metodę GetInvalidPathChars().
path jest null.
path jest nieprawidłowa (na przykład jest na niezamapowanym dysku).
Nie można odnaleźć pliku określonego przez path.
Wystąpił błąd we/wy podczas otwierania pliku.
path przekracza maksymalną długość zdefiniowaną przez system.
Obiekt wywołujący nie ma wymaganych uprawnień.
path określa plik, który jest tylko do odczytu.
-lub-
Ta operacja nie jest obsługiwana na bieżącej platformie.
-lub-
path jest katalogiem.
-lub-
Obiekt wywołujący nie ma wymaganych uprawnień.
Uwagi
Użyj tej metody, aby określić kodowanie do odczytu pliku.
Metody ReadLines i ReadAllLines różnią się w następujący sposób: w przypadku używania ReadLinesmożna rozpocząć wyliczanie kolekcji ciągów przed zwróceniem całej kolekcji. W przypadku używania ReadAllLinesnależy poczekać na zwrócenie całej tablicy ciągów, zanim będzie można uzyskać dostęp do tablicy. W związku z tym podczas pracy z bardzo dużymi plikami ReadLines mogą być wydajniejsze.
Aby wykonać następujące czynności, możesz użyć metody ReadLines:
Wykonaj LINQ to Objects zapytania w pliku, aby uzyskać filtrowany zestaw jego wierszy.
Zapisz zwróconą kolekcję wierszy do pliku przy użyciu metody File.WriteAllLines(String, IEnumerable<String>, Encoding) lub dołącz je do istniejącego pliku za pomocą metody File.AppendAllLines(String, IEnumerable<String>, Encoding).
Utwórz natychmiast wypełnione wystąpienie kolekcji, które pobiera kolekcję IEnumerable<T> ciągów dla jego konstruktora, na przykład IList<T> lub Queue<T>.
Dotyczy
ReadLines(String)
- Źródło:
- File.cs
- Źródło:
- File.cs
- Źródło:
- File.cs
Odczytuje wiersze pliku.
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
Plik do odczytania.
Zwraca
Wszystkie wiersze pliku lub wiersze, które są wynikiem zapytania.
Wyjątki
.NET Framework i .NET Core w wersjach starszych niż 2.1: path jest ciągiem o zerowej długości, zawiera tylko biały znak lub zawiera jeden lub więcej nieprawidłowych znaków zdefiniowanych przez metodę GetInvalidPathChars().
path jest null.
path jest nieprawidłowa (na przykład jest na niezamapowanym dysku).
Nie można odnaleźć pliku określonego przez path.
Wystąpił błąd we/wy podczas otwierania pliku.
path przekracza maksymalną długość zdefiniowaną przez system.
Obiekt wywołujący nie ma wymaganych uprawnień.
path określa plik, który jest tylko do odczytu.
-lub-
Ta operacja nie jest obsługiwana na bieżącej platformie.
-lub-
path jest katalogiem.
-lub-
Obiekt wywołujący nie ma wymaganych uprawnień.
Przykłady
Poniższy przykład odczytuje wiersze pliku, aby znaleźć wiersze zawierające określone ciągi.
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
W poniższym przykładzie użyto metody ReadLines w zapytaniu LINQ, które wylicza wszystkie katalogi dla plików z rozszerzeniem .txt, odczytuje każdy wiersz pliku i wyświetla wiersz, jeśli zawiera ciąg "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
Uwagi
Metody ReadLines i ReadAllLines różnią się w następujący sposób: w przypadku używania ReadLinesmożna rozpocząć wyliczanie kolekcji ciągów przed zwróceniem całej kolekcji; w przypadku używania ReadAllLinesnależy poczekać na zwrócenie całej tablicy ciągów, zanim będzie można uzyskać dostęp do tablicy. W związku z tym podczas pracy z bardzo dużymi plikami ReadLines mogą być wydajniejsze.
Aby wykonać następujące czynności, możesz użyć metody ReadLines:
Wykonaj LINQ to Objects zapytania w pliku, aby uzyskać filtrowany zestaw jego wierszy.
Zapisz zwróconą kolekcję wierszy do pliku przy użyciu metody File.WriteAllLines(String, IEnumerable<String>) lub dołącz je do istniejącego pliku za pomocą metody File.AppendAllLines(String, IEnumerable<String>).
Utwórz natychmiast wypełnione wystąpienie kolekcji, które pobiera kolekcję IEnumerable<T> ciągów dla jego konstruktora, na przykład IList<T> lub Queue<T>.
Ta metoda używa UTF8 dla wartości kodowania.