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) |
Odczytuje wiersze pliku. |
ReadLines(String, Encoding) |
Odczytywanie wierszy pliku z określonym kodowaniem. |
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
to null
.
path
jest nieprawidłowy (na przykład znajduje się na niezamapowanym dysku).
Nie można odnaleźć pliku określonego przez path
program .
Podczas otwierania pliku wystąpił błąd We/Wy.
path
przekracza maksymalną długość zdefiniowaną przez system.
Obiekt wywołujący nie posiada 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 posiada 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 ReadLines metody w zapytaniu LINQ, która wylicza wszystkie katalogi 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życia metody ReadLinesmożna rozpocząć wyliczanie kolekcji ciągów przed zwróceniem całej kolekcji. W przypadku użycia ReadAllLinesmetody należ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 może być wydajniejszy.
Możesz użyć ReadLines metody , aby wykonać następujące czynności:
Wykonaj LINQ to Objects zapytania dotyczące pliku, aby uzyskać filtrowany zestaw jego wierszy.
Zapisz zwróconą kolekcję wierszy do pliku za pomocą File.WriteAllLines(String, IEnumerable<String>) metody lub dołącz je do istniejącego pliku za File.AppendAllLines(String, IEnumerable<String>) pomocą metody .
Twórca natychmiast wypełnione wystąpienie kolekcji, które pobiera IEnumerable<T> kolekcję ciągów dla konstruktora, takiego jak lub IList<T>Queue<T>.
Ta metoda używa UTF8 wartości kodowania.
Dotyczy
ReadLines(String, Encoding)
- Źródło:
- File.cs
- Źródło:
- File.cs
- Źródło:
- File.cs
Odczytywanie wierszy pliku z określonym kodowaniem.
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łe znaki lub zawiera co najmniej jeden nieprawidłowy znak zdefiniowany przez metodę GetInvalidPathChars() .
path
to null
.
path
jest nieprawidłowy (na przykład znajduje się na niezamapowanym dysku).
Nie można odnaleźć pliku określonego przez path
program .
Podczas otwierania pliku wystąpił błąd We/Wy.
path
przekracza maksymalną długość zdefiniowaną przez system.
Obiekt wywołujący nie posiada 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 posiada wymaganych uprawnień.
Uwagi
Użyj tej metody, aby określić kodowanie używane do odczytywania pliku.
Metody ReadLines i ReadAllLines różnią się w następujący sposób: w przypadku użycia metody ReadLinesmożna rozpocząć wyliczanie kolekcji ciągów przed zwróceniem całej kolekcji. W przypadku użycia metody 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 może być wydajniejszy.
Możesz użyć ReadLines metody , aby wykonać następujące czynności:
Wykonaj LINQ to Objects zapytania dotyczące pliku, aby uzyskać filtrowany zestaw jego wierszy.
Zapisz zwróconą kolekcję wierszy do pliku za pomocą File.WriteAllLines(String, IEnumerable<String>, Encoding) metody lub dołącz je do istniejącego pliku za File.AppendAllLines(String, IEnumerable<String>, Encoding) pomocą metody .
Twórca natychmiast wypełnione wystąpienie kolekcji, które pobiera IEnumerable<T> kolekcję ciągów dla konstruktora, takiego jak lub IList<T>Queue<T>.
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla