英語で読む

次の方法で共有


File.ReadLines メソッド

定義

ファイルの行を読み取ります。

オーバーロード

ReadLines(String, Encoding)

指定したエンコードを持つファイルの行を読み取ります。

ReadLines(String)

ファイルの行を読み取ります。

ReadLines(String, Encoding)

ソース:
File.cs
ソース:
File.cs
ソース:
File.cs

指定したエンコードを持つファイルの行を読み取ります。

C#
public static System.Collections.Generic.IEnumerable<string> ReadLines (string path, System.Text.Encoding encoding);

パラメーター

path
String

読み取るファイル。

encoding
Encoding

ファイルの内容に適用されるエンコード。

戻り値

ファイルのすべての行、またはクエリの結果である行。

例外

.NET Framework および .NET Core バージョン 2.1 より前: path は長さ 0 の文字列、空白のみを含む、または GetInvalidPathChars() メソッドで定義されている無効な文字が 1 つ以上含まれています。

pathnullです。

path が無効です (たとえば、マップされていないドライブ上にあります)。

path で指定されたファイルが見つかりませんでした。

ファイルを開くときに I/O エラーが発生しました。

path は、システム定義の最大長を超えています。

呼び出し元に必要なアクセス許可がありません。

path 読み取り専用のファイルを指定します。

-又は-

この操作は、現在のプラットフォームではサポートされていません。

-又は-

path はディレクトリです。

-又は-

呼び出し元に必要なアクセス許可がありません。

注釈

このメソッドを使用して、ファイルの読み取りを使用するエンコードを指定します。

ReadLines メソッドと ReadAllLines メソッドは次のように異なります。ReadLinesを使用すると、コレクション全体が返される前に文字列のコレクションの列挙を開始できます。 ReadAllLinesを使用する場合は、配列にアクセスする前に、文字列の配列全体が返されるのを待つ必要があります。 そのため、非常に大きなファイルを操作する場合は、ReadLines の効率を高めることができます。

ReadLines メソッドを使用して、次の操作を行うことができます。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

ReadLines(String)

ソース:
File.cs
ソース:
File.cs
ソース:
File.cs

ファイルの行を読み取ります。

C#
public static System.Collections.Generic.IEnumerable<string> ReadLines (string path);

パラメーター

path
String

読み取るファイル。

戻り値

ファイルのすべての行、またはクエリの結果である行。

例外

2.1 より前のバージョンの .NET Framework と .NET Core: path は長さ 0 の文字列、空白のみを含む、または GetInvalidPathChars() メソッドで定義された 1 つ以上の無効な文字を含みます。

pathnullです。

path が無効です (たとえば、マップされていないドライブ上にあります)。

path で指定されたファイルが見つかりませんでした。

ファイルを開くときに I/O エラーが発生しました。

path は、システム定義の最大長を超えています。

呼び出し元に必要なアクセス許可がありません。

path 読み取り専用のファイルを指定します。

-又は-

この操作は、現在のプラットフォームではサポートされていません。

-又は-

path はディレクトリです。

-又は-

呼び出し元に必要なアクセス許可がありません。

次の例では、ファイルの行を読み取って、指定した文字列を含む行を検索します。

C#
foreach (string line in File.ReadLines(@"d:\data\episodes.txt"))
{
    if (line.Contains("episode") & line.Contains("2006"))
    {
        Console.WriteLine(line);
    }
}

次の例では、LINQ クエリの ReadLines メソッドを使用します。このメソッドは、拡張子が .txt のファイルのすべてのディレクトリを列挙し、ファイルの各行を読み取り、文字列 "Microsoft" が含まれている場合は行を表示します。

C#
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);
        }
    }
}

注釈

ReadLines メソッドと ReadAllLines メソッドは次のように異なります。ReadLinesを使用すると、コレクション全体が返される前に文字列のコレクションの列挙を開始できます。ReadAllLinesを使用する場合は、配列にアクセスする前に、文字列の配列全体が返されるのを待つ必要があります。 そのため、非常に大きなファイルを操作する場合は、ReadLines の効率を高めることができます。

ReadLines メソッドを使用して、次の操作を行うことができます。

このメソッドでは、エンコード値に UTF8 を使用します。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0