File.ReadLines 메서드

정의

파일의 줄을 읽습니다.

오버로드

ReadLines(String, Encoding)

지정된 인코딩이 있는 파일의 줄을 읽습니다.

ReadLines(String)

파일의 줄을 읽습니다.

ReadLines(String, Encoding)

Source:
File.cs
Source:
File.cs
Source:
File.cs

지정된 인코딩이 있는 파일의 줄을 읽습니다.

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() 메서드에 정의된 하나 이상의 잘못된 문자를 포함합니다.

path 잘못되었습니다(예: 매핑되지 않은 드라이브에 있는 경우).

path 지정한 파일을 찾을 수 없습니다.

파일을 여는 동안 I/O 오류가 발생했습니다.

path 시스템 정의 최대 길이를 초과합니다.

호출자에게 필요한 권한이 없습니다.

path 읽기 전용인 파일을 지정합니다.

-또는-

이 작업은 현재 플랫폼에서 지원되지 않습니다.

-또는-

path 디렉터리입니다.

-또는-

호출자에게 필요한 권한이 없습니다.

설명

이 메서드를 사용하여 파일 읽기를 사용할 인코딩을 지정합니다.

ReadLinesReadAllLines 메서드는 다음과 같이 다릅니다. 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)

Source:
File.cs
Source:
File.cs
Source:
File.cs

파일의 줄을 읽습니다.

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

매개 변수

path
String

읽을 파일입니다.

반환

파일의 모든 줄 또는 쿼리의 결과인 줄입니다.

예외

.NET Framework 및 .NET Core 버전이 2.1보다 오래된 경우: path 길이가 0인 문자열이거나, 공백만 포함하거나, GetInvalidPathChars() 메서드에서 정의한 하나 이상의 잘못된 문자를 포함합니다.

path 잘못되었습니다(예: 매핑되지 않은 드라이브에 있는 경우).

path 지정한 파일을 찾을 수 없습니다.

파일을 여는 동안 I/O 오류가 발생했습니다.

path 시스템 정의 최대 길이를 초과합니다.

호출자에게 필요한 권한이 없습니다.

path 읽기 전용인 파일을 지정합니다.

-또는-

이 작업은 현재 플랫폼에서 지원되지 않습니다.

-또는-

path 디렉터리입니다.

-또는-

호출자에게 필요한 권한이 없습니다.

예제

다음 예제에서는 파일의 줄을 읽어 지정된 문자열이 포함된 줄을 찾습니다.

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

다음 예제에서는 .txt 확장명이 있는 파일의 모든 디렉터리를 열거하고, 파일의 각 줄을 읽고, "Microsoft" 문자열이 포함된 경우 줄을 표시하는 LINQ 쿼리에서 ReadLines 메서드를 사용합니다.

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

설명

ReadLinesReadAllLines 메서드는 다음과 같이 다릅니다. 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