File.ReadLines メソッド

定義

ファイルの行を読み取ります。Reads the lines of a file.

オーバーロード

ReadLines(String)

ファイルの行を読み取ります。Reads the lines of a file.

ReadLines(String, Encoding)

指定された方法でエンコーディングされたファイルの行を読み取ります。Read the lines of a file that has a specified encoding.

ReadLines(String)

ファイルの行を読み取ります。Reads the lines of a file.

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)

パラメーター

path
String

読み取るファイル。The file to read.

戻り値

IEnumerable<String>

ファイルのすべての行、またはクエリの結果の行。All the lines of the file, or the lines that are the result of a query.

例外

path は長さゼロの文字列で、空白のみを含んでいるか、または GetInvalidPathChars() メソッドで定義されている 1 つ以上の無効な文字を含んでいます。path is a zero-length string, contains only white space, or contains one or more invalid characters defined by the GetInvalidPathChars() method.

pathnullです。path is null.

path が有効ではありません (たとえば、マップされていないドライブにあるなど)。path is invalid (for example, it is on an unmapped drive).

path によって指定されたファイルが見つかりませんでした。The file specified by path was not found.

ファイルを開くときに、I/O エラーが発生しました。An I/O error occurred while opening the file.

path がシステムで定義されている最大長を超えています。path exceeds the system-defined maximum length.

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

path は読み取り専用のファイルを指定します。path specifies a file that is read-only.

- または --or- この操作は、現在のプラットフォームではサポートされていません。This operation is not supported on the current platform.

- または --or- path はディレクトリです。path is a directory.

- または --or- 呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

次の例では、ファイルの行を読み取り、指定された文字列を含む行を検索します。The following example reads the lines of a file to find lines that contain specified strings.

foreach (string line in File.ReadLines(@"d:\data\episodes.txt"))
{
    if (line.Contains("episode") & line.Contains("2006"))
    {
        Console.WriteLine(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

次の例では、 ReadLines LINQ クエリでメソッドを使用して、拡張子が .txt のファイルのすべてのディレクトリを列挙し、ファイルの各行を読み取り、文字列 "Microsoft" が含まれている場合はその行を表示します。The following example uses the ReadLines method in a LINQ query that enumerates all directories for files that have a .txt extension, reads each line of the file, and displays the line if it contains the string "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);
        }
    }
}
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

注釈

ReadLinesメソッドとメソッドは次のように ReadAllLines 異なります。を使用すると、 ReadLines コレクション全体が返される前に、文字列のコレクションの列挙を開始できます。を使用する場合は ReadAllLines 、配列にアクセスする前に、文字列の配列全体が返されるまで待機する必要があります。The ReadLines and ReadAllLines methods differ as follows: When you use ReadLines, you can start enumerating the collection of strings before the whole collection is returned; when you use ReadAllLines, you must wait for the whole array of strings be returned before you can access the array. このため、非常に大きなファイルを操作する場合は、の方 ReadLines が効率的です。Therefore, when you are working with very large files, ReadLines can be more efficient.

メソッドを使用し ReadLines て、次の操作を行うことができます。You can use the ReadLines method to do the following:

このメソッドは UTF8 、エンコーディング値にを使用します。This method uses UTF8 for the encoding value.

適用対象

ReadLines(String, Encoding)

指定された方法でエンコーディングされたファイルの行を読み取ります。Read the lines of a file that has a specified encoding.

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)

パラメーター

path
String

読み取るファイル。The file to read.

encoding
Encoding

ファイルの内容に適用されるエンコーディング。The encoding that is applied to the contents of the file.

戻り値

IEnumerable<String>

ファイルのすべての行、またはクエリの結果の行。All the lines of the file, or the lines that are the result of a query.

例外

path は長さゼロの文字列で、空白のみで構成されているか、または GetInvalidPathChars() メソッドで定義されるように 1 つ以上の無効な文字を含んでいます。path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by the GetInvalidPathChars() method.

pathnullです。path is null.

path が有効ではありません (たとえば、マップされていないドライブにあるなど)。path is invalid (for example, it is on an unmapped drive).

path によって指定されたファイルが見つかりませんでした。The file specified by path was not found.

ファイルを開くときに、I/O エラーが発生しました。An I/O error occurred while opening the file.

path がシステムで定義されている最大長を超えています。path exceeds the system-defined maximum length.

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

path は読み取り専用のファイルを指定します。path specifies a file that is read-only.

- または --or- この操作は、現在のプラットフォームではサポートされていません。This operation is not supported on the current platform.

- または --or- path はディレクトリです。path is a directory.

- または --or- 呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

注釈

このメソッドを使用して、ファイルの読み取りに使用するエンコーディングを指定します。Use this method to specify an encoding to use read the file.

ReadLinesメソッドとメソッドは次のように ReadAllLines 異なります。を使用すると ReadLines 、コレクション全体が返される前に、文字列のコレクションの列挙を開始できます。The ReadLines and ReadAllLines methods differ as follows: When you use ReadLines, you can start enumerating the collection of strings before the whole collection is returned. を使用する場合は ReadAllLines 、配列にアクセスする前に、文字列の配列全体が返されるまで待機する必要があります。When you use ReadAllLines, you must wait for the whole array of strings be returned before you can access the array. このため、非常に大きなファイルを操作する場合は、の方 ReadLines が効率的です。Therefore, when you are working with very large files, ReadLines can be more efficient.

メソッドを使用し ReadLines て、次の操作を行うことができます。You can use the ReadLines method to do the following:

適用対象