File.ReadLines Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Dosyanın satırlarını okur.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| ReadLines(String, Encoding) |
Belirtilen kodlamaya sahip bir dosyanın satırlarını okuyun. |
| ReadLines(String) |
Dosyanın satırlarını okur. |
ReadLines(String, Encoding)
- Kaynak:
- File.cs
- Kaynak:
- File.cs
- Kaynak:
- File.cs
- Kaynak:
- File.cs
- Kaynak:
- File.cs
Belirtilen kodlamaya sahip bir dosyanın satırlarını okuyun.
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)
Parametreler
- path
- String
Okunacak dosya.
- encoding
- Encoding
Dosyanın içeriğine uygulanan kodlama.
Döndürülenler
Dosyanın tüm satırları veya sorgunun sonucu olan satırlar.
Özel durumlar
2.1'den eski .NET Framework ve .NET Core sürümleri: path sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya GetInvalidPathChars() yöntemi tarafından tanımlanan bir veya daha fazla geçersiz karakter içerir.
path, null'e eşittir.
path geçersizdir (örneğin, eşlenmemiş bir sürücüdedir).
tarafından path belirtilen dosya bulunamadı.
Dosya açılırken bir G/Ç hatası oluştu.
path sistem tanımlı maksimum uzunluğu aşıyor.
Çağıranın gerekli izni yok.
path salt okunur bir dosya belirtir.
-veya-
Bu işlem geçerli platformda desteklenmiyor.
-veya-
path bir dizindir.
-veya-
Çağıranın gerekli izni yok.
Açıklamalar
Dosyayı okumak için kullanılacak bir kodlama belirtmek için bu yöntemi kullanın.
ReadLines ve ReadAllLines yöntemleri aşağıdaki gibi farklılık gösterir: kullandığınızdaReadLines, tüm koleksiyon döndürülmeden önce dize koleksiyonunu numaralandırmaya başlayabilirsiniz. kullandığınızda ReadAllLines, diziye erişebilmeniz için önce dize dizisinin tamamının döndürülmesini beklemeniz gerekir. Bu nedenle, çok büyük dosyalarla ReadLines çalışırken daha verimli olabilir.
Aşağıdakileri yapmak için yöntemini kullanabilirsiniz ReadLines :
- Filtrelenmiş bir satır kümesi elde etmek için bir dosyada LINQ to Objects sorguları gerçekleştirin.
- Döndürülen satır koleksiyonunu yöntemiyle File.WriteAllLines(String, IEnumerable<String>, Encoding) bir dosyaya yazın veya yöntemiyle var olan bir dosyaya File.AppendAllLines(String, IEnumerable<String>, Encoding) ekleyin.
- Veya gibi IList<T> oluşturucusunun dize koleksiyonunu alan IEnumerable<T> bir koleksiyonun hemen doldurulmuş bir Queue<T>örneğini oluşturun.
Satır, satır başı ('\r'), satır beslemesi ('\n'), satır başı hemen ardından satır beslemesi veya dosya veya akışın sonu tarafından sonlandırılan karakter dizisi olarak tanımlanır. Dosya yeni satır dizisiyle biterse, ek boş satır döndürülür. Örneğin, içeren "line1\nline2\n" bir dosya, içeren bir dosyayla "line1\nline2"aynı iki satırı ("line1" ve "line2") üretir.
Şunlara uygulanır
ReadLines(String)
- Kaynak:
- File.cs
- Kaynak:
- File.cs
- Kaynak:
- File.cs
- Kaynak:
- File.cs
- Kaynak:
- File.cs
Dosyanın satırlarını okur.
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)
Parametreler
- path
- String
Okunacak dosya.
Döndürülenler
Dosyanın tüm satırları veya sorgunun sonucu olan satırlar.
Özel durumlar
2.1'den eski .NET Framework ve .NET Core sürümleri: path sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya GetInvalidPathChars() yöntemi tarafından tanımlanan bir veya daha fazla geçersiz karakter içerir.
path, null'e eşittir.
path geçersizdir (örneğin, eşlenmemiş bir sürücüdedir).
tarafından path belirtilen dosya bulunamadı.
Dosya açılırken bir G/Ç hatası oluştu.
path sistem tanımlı maksimum uzunluğu aşıyor.
Çağıranın gerekli izni yok.
path salt okunur bir dosya belirtir.
-veya-
Bu işlem geçerli platformda desteklenmiyor.
-veya-
path bir dizindir.
-veya-
Çağıranın gerekli izni yok.
Örnekler
Aşağıdaki örnek, belirtilen dizeleri içeren satırları bulmak için dosyanın satırlarını okur.
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
Aşağıdaki örnek, .txt uzantısına sahip dosyaların tüm dizinlerini numaralandıran, dosyanın her satırını okuyan ve "Microsoft" dizesini içeriyorsa satırı görüntüleyen bir LINQ sorgusunda ReadLines yöntemini kullanır.
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
Açıklamalar
ReadLines ve ReadAllLines yöntemleri aşağıdaki gibi farklılık gösterir: kullandığınızdaReadLines, tüm koleksiyon döndürülmeden önce dize koleksiyonunu numaralandırmaya başlayabilirsiniz; kullandığınızdaReadAllLines, diziye erişebilmeniz için önce dize dizisinin tamamının döndürülmesini beklemeniz gerekir. Bu nedenle, çok büyük dosyalarla ReadLines çalışırken daha verimli olabilir.
Aşağıdakileri yapmak için yöntemini kullanabilirsiniz ReadLines :
- Filtrelenmiş bir satır kümesi elde etmek için bir dosyada LINQ to Objects sorguları gerçekleştirin.
- Döndürülen satır koleksiyonunu yöntemiyle File.WriteAllLines(String, IEnumerable<String>) bir dosyaya yazın veya yöntemiyle var olan bir dosyaya File.AppendAllLines(String, IEnumerable<String>) ekleyin.
- Veya gibi IList<T> oluşturucusunun dize koleksiyonunu alan IEnumerable<T> bir koleksiyonun hemen doldurulmuş bir Queue<T>örneğini oluşturun.
Bu yöntem kodlama değeri için kullanır UTF8 .
Satır, ardından satır başı ('\r'), satır beslemesi ('\n') veya satır başı hemen ardından bir satır beslemesi veya yeni satır dizisi olmadan biterse dosya veya akıştaki karakterlerin son dizisi olarak tanımlanır. Dosya yeni satır dizisiyle biterse, ek boş satır döndürülür. Örneğin, içeren "line1\nline2\n" bir dosya, içeren bir dosyayla "line1\nline2"aynı iki satırı ("line1" ve "line2") üretir.