File.WriteAllLines 메서드

정의

새 파일을 만들고 하나 이상의 문자열을 파일에 쓴 다음 파일을 닫습니다.

오버로드

WriteAllLines(String, IEnumerable<String>)

새 파일을 만들고 문자열의 컬렉션을 파일에 쓴 다음 파일을 닫습니다.

WriteAllLines(String, String[])

새 파일을 만들고 지정된 문자열 배열을 파일에 쓴 다음 파일을 닫습니다.

WriteAllLines(String, IEnumerable<String>, Encoding)

지정된 인코딩을 사용하여 새 파일을 만들고 문자열의 컬렉션을 파일에 쓴 다음 파일을 닫습니다.

WriteAllLines(String, String[], Encoding)

새 파일을 만들고 지정된 인코딩을 사용하여 지정된 문자열 배열을 파일에 쓴 다음 파일을 닫습니다.

WriteAllLines(String, IEnumerable<String>)

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

새 파일을 만들고 문자열의 컬렉션을 파일에 쓴 다음 파일을 닫습니다.

public:
 static void WriteAllLines(System::String ^ path, System::Collections::Generic::IEnumerable<System::String ^> ^ contents);
public static void WriteAllLines (string path, System.Collections.Generic.IEnumerable<string> contents);
static member WriteAllLines : string * seq<string> -> unit
Public Shared Sub WriteAllLines (path As String, contents As IEnumerable(Of String))

매개 변수

path
String

쓸 파일입니다.

contents
IEnumerable<String>

파일에 쓸 줄입니다.

예외

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

path 또는 contentsnull인 경우

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

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

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

path의 형식이 잘못되었습니다.

호출자에게 필요한 권한이 없는 경우

path에 읽기 전용인 파일이 지정되었습니다.

또는

path는 숨겨진 파일을 지정했습니다.

또는

현재 플랫폼이 해당 작업을 지원하지 않는 경우

또는

path는 디렉터리입니다.

또는

호출자에게 필요한 권한이 없는 경우

예제

다음 예제에서는 샘플 데이터 파일에서 선택한 줄을 파일에 씁니다.

using System;
using System.IO;
using System.Linq;

class Program
{
    static string dataPath = @"c:\temp\timestamps.txt";

    static void Main(string[] args)
    {
        CreateSampleFile();

        var JulyWeekends = from line in File.ReadLines(dataPath)
                           where (line.StartsWith("Saturday") ||
                           line.StartsWith("Sunday")) &
                           line.Contains("July")
                           select line;

        File.WriteAllLines(@"C:\temp\selectedDays.txt", JulyWeekends);

        var MarchMondays = from line in File.ReadLines(dataPath)
                           where line.StartsWith("Monday") &&
                           line.Contains("March")
                           select line;

        File.AppendAllLines(@"C:\temp\selectedDays.txt", MarchMondays);
    }

    static void CreateSampleFile()
    {
        DateTime TimeStamp = new DateTime(1700, 1, 1);

        using (StreamWriter sw = new StreamWriter(dataPath))
        {
            for (int i = 0; i < 500; i++)
            {
                DateTime TS1 = TimeStamp.AddYears(i);
                DateTime TS2 = TS1.AddMonths(i);
                DateTime TS3 = TS2.AddDays(i);
                sw.WriteLine(TS3.ToLongDateString());
            }
        }
    }
}
open System
open System.IO

let dataPath = @"c:\temp\timestamps.txt"

let createSampleFile () =
    let timeStamp = DateTime(1700, 1, 1)

    use sw = new StreamWriter(dataPath)

    for i = 0 to 499 do
        let ts1 = timeStamp.AddYears i
        let ts2 = ts1.AddMonths i
        let ts3 = ts2.AddDays i
        ts3.ToLongDateString() |> sw.WriteLine

createSampleFile ()

let julyWeekends =
    File.ReadLines dataPath
    |> Seq.filter (fun line ->
        (line.StartsWith "Saturday"
         || line.StartsWith "Sunday")
        && line.Contains "July")

File.WriteAllLines(@"C:\temp\selectedDays.txt", julyWeekends)

let marchMondays =
    File.ReadLines dataPath
    |> Seq.filter (fun line -> line.StartsWith "Monday" && line.Contains "March")

File.AppendAllLines(@"C:\temp\selectedDays.txt", marchMondays)
Imports System.IO
Imports System.Linq

Class Program
    Shared dataPath As String = "c:\temp\timestamps.txt"

    Public Shared Sub Main(ByVal args As String())
        CreateSampleFile()

        Dim JulyWeekends = From line In File.ReadLines(dataPath) _
            Where (line.StartsWith("Saturday") OrElse _
            line.StartsWith("Sunday")) And line.Contains("July") _
            Select line

        File.WriteAllLines("C:\temp\selectedDays.txt", JulyWeekends)

        Dim MarchMondays = From line In File.ReadLines(dataPath) _
            Where line.StartsWith("Monday") AndAlso line.Contains("March") _
            Select line

        File.AppendAllLines("C:\temp\selectedDays.txt", MarchMondays)
    End Sub

    Private Shared Sub CreateSampleFile()
        Dim TimeStamp As New DateTime(1700, 1, 1)

        Using sw As New StreamWriter(dataPath)
            For i As Integer = 0 To 499
                Dim TS1 As DateTime = TimeStamp.AddYears(i)
                Dim TS2 As DateTime = TS1.AddMonths(i)
                Dim TS3 As DateTime = TS2.AddDays(i)

                sw.WriteLine(TS3.ToLongDateString())
            Next
        End Using
    End Sub
End Class

설명

메서드의 WriteAllLines(String, IEnumerable<String>) 기본 동작은 BOM(바이트 순서 표시) 없이 UTF-8 인코딩을 사용하여 데이터를 작성하는 것입니다. 파일의 시작 부분에 바이트 순서 표시와 같은 UTF-8 식별자를 포함해야 하는 경우 인코딩과 함께 UTF8 메서드 오버로드를 사용합니다WriteAllLines(String, IEnumerable<String>, Encoding).

대상 파일이 이미 있는 경우 잘리고 덮어씁니다.

이 메서드를 사용하여 , HashSet<T>또는 SortedSet<T> 클래스와 같은 생성자에서 를 사용하는 IEnumerable<T> 컬렉션 클래스에 List<T>대한 콘텐츠를 만들 수 있습니다.

적용 대상

WriteAllLines(String, String[])

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

새 파일을 만들고 지정된 문자열 배열을 파일에 쓴 다음 파일을 닫습니다.

public:
 static void WriteAllLines(System::String ^ path, cli::array <System::String ^> ^ contents);
public static void WriteAllLines (string path, string[] contents);
static member WriteAllLines : string * string[] -> unit
Public Shared Sub WriteAllLines (path As String, contents As String())

매개 변수

path
String

쓸 파일입니다.

contents
String[]

파일에 쓸 문자열 배열입니다.

예외

2.1보다 오래된 .NET Framework 및 .NET Core 버전: path 길이가 0인 문자열이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다. GetInvalidPathChars() 메서드를 사용하여 잘못된 문자를 쿼리할 수 있습니다.

path 또는 contentsnull인 경우

지정된 경로, 파일 이름 또는 둘 다가 시스템에서 정의한 최대 길이를 초과합니다.

지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).

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

path에 읽기 전용인 파일이 지정되었습니다.

또는

path는 숨겨진 파일을 지정했습니다.

또는

현재 플랫폼이 해당 작업을 지원하지 않는 경우

또는

path에 디렉터리가 지정되었습니다.

또는

호출자에게 필요한 권한이 없는 경우

path의 형식이 잘못되었습니다.

호출자에게 필요한 권한이 없는 경우

예제

다음 코드 예제에서는 메서드를 WriteAllLines 사용하여 파일에 텍스트를 쓰는 방법을 보여 줍니다. 이 예제에서는 파일이 아직 없는 경우 만들어지고 텍스트가 추가됩니다.

using System;
using System.IO;
class Test
{
    public static void Main()
    {
        string path = @"c:\temp\MyTest.txt";

        // This text is added only once to the file.
        if (!File.Exists(path))
        {
            // Create a file to write to.
            string[] createText = { "Hello", "And", "Welcome" };
            File.WriteAllLines(path, createText);
        }

        // This text is always added, making the file longer over time
        // if it is not deleted.
        string appendText = "This is extra text" + Environment.NewLine;
        File.AppendAllText(path, appendText);

        // Open the file to read from.
        string[] readText = File.ReadAllLines(path);
        foreach (string s in readText)
        {
            Console.WriteLine(s);
        }
    }
}
open System
open System.IO

let path = @"c:\temp\MyTest.txt"

// This text is added only once to the file.
if File.Exists path |> not then
    // Create a file to write to.
    let createText = [ "Hello"; "And"; "Welcome" ]
    File.WriteAllLines(path, createText)

// This text is always added, making the file longer over time
// if it is not deleted.
let appendText =
    "This is extra text" + Environment.NewLine

File.AppendAllText(path, appendText)

// Open the file to read from.
let readText = File.ReadAllLines path

for s in readText do
    printfn $"{s}"
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        Dim path As String = "c:\temp\MyTest.txt"
        Dim sw As StreamWriter

        ' This text is added only once to the file.
        If File.Exists(path) = False Then

            ' Create a file to write to.
            Dim createText() As String = {"Hello", "And", "Welcome"}
            File.WriteAllLines(path, createText)
        End If

        ' This text is always added, making the file longer over time
        ' if it is not deleted.
        Dim appendText As String = "This is extra text" + Environment.NewLine
        File.AppendAllText(path, appendText)

        ' Open the file to read from.
        Dim readText() As String = File.ReadAllLines(path)
        Dim s As String
        For Each s In readText
            Console.WriteLine(s)
        Next
    End Sub
End Class

설명

대상 파일이 이미 있는 경우 잘리고 덮어씁니다.

메서드의 WriteAllLines 기본 동작은 BOM(바이트 순서 표시) 없이 UTF-8 인코딩을 사용하여 데이터를 작성하는 것입니다. 파일의 시작 부분에 바이트 순서 표시와 같은 UTF-8 식별자를 포함해야 하는 경우 인코딩과 함께 UTF8 메서드 오버로드를 사용합니다WriteAllLines(String, String[], Encoding).

문자열 배열과 파일 경로가 지정된 경우 이 메서드는 지정된 파일을 열고 문자열 배열을 파일에 쓴 다음 파일을 닫습니다.

적용 대상

WriteAllLines(String, IEnumerable<String>, Encoding)

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

지정된 인코딩을 사용하여 새 파일을 만들고 문자열의 컬렉션을 파일에 쓴 다음 파일을 닫습니다.

public:
 static void WriteAllLines(System::String ^ path, System::Collections::Generic::IEnumerable<System::String ^> ^ contents, System::Text::Encoding ^ encoding);
public static void WriteAllLines (string path, System.Collections.Generic.IEnumerable<string> contents, System.Text.Encoding encoding);
static member WriteAllLines : string * seq<string> * System.Text.Encoding -> unit
Public Shared Sub WriteAllLines (path As String, contents As IEnumerable(Of String), encoding As Encoding)

매개 변수

path
String

쓸 파일입니다.

contents
IEnumerable<String>

파일에 쓸 줄입니다.

encoding
Encoding

사용할 문자 인코딩입니다.

예외

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

path, contents 또는 encodingnull입니다.

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

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

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

path의 형식이 잘못되었습니다.

호출자에게 필요한 권한이 없는 경우

path에 읽기 전용인 파일이 지정되었습니다.

또는

path는 숨겨진 파일을 지정했습니다.

또는

현재 플랫폼이 해당 작업을 지원하지 않는 경우

또는

path는 디렉터리입니다.

또는

호출자에게 필요한 권한이 없는 경우

설명

대상 파일이 이미 있는 경우 잘리고 덮어씁니다.

이 메서드를 사용하여 다음이 포함된 파일을 만들 수 있습니다.

적용 대상

WriteAllLines(String, String[], Encoding)

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

새 파일을 만들고 지정된 인코딩을 사용하여 지정된 문자열 배열을 파일에 쓴 다음 파일을 닫습니다.

public:
 static void WriteAllLines(System::String ^ path, cli::array <System::String ^> ^ contents, System::Text::Encoding ^ encoding);
public static void WriteAllLines (string path, string[] contents, System.Text.Encoding encoding);
static member WriteAllLines : string * string[] * System.Text.Encoding -> unit
Public Shared Sub WriteAllLines (path As String, contents As String(), encoding As Encoding)

매개 변수

path
String

쓸 파일입니다.

contents
String[]

파일에 쓸 문자열 배열입니다.

encoding
Encoding

문자열 배열에 적용되는 문자 인코딩을 나타내는 Encoding 개체입니다.

예외

2.1보다 오래된 .NET Framework 및 .NET Core 버전: path 길이가 0인 문자열이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다. GetInvalidPathChars() 메서드를 사용하여 잘못된 문자를 쿼리할 수 있습니다.

path 또는 contentsnull인 경우

지정된 경로, 파일 이름 또는 둘 다가 시스템에서 정의한 최대 길이를 초과합니다.

지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).

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

path에 읽기 전용인 파일이 지정되었습니다.

또는

path는 숨겨진 파일을 지정했습니다.

또는

현재 플랫폼이 해당 작업을 지원하지 않는 경우

또는

path에 디렉터리가 지정되었습니다.

또는

호출자에게 필요한 권한이 없는 경우

path의 형식이 잘못되었습니다.

호출자에게 필요한 권한이 없는 경우

예제

다음 코드 예제에서는 메서드를 WriteAllLines 사용하여 파일에 텍스트를 쓰는 방법을 보여 줍니다. 이 예제에서는 파일이 아직 없는 경우 만들어지고 텍스트가 추가됩니다.

using System;
using System.IO;
using System.Text;

class Test
{
    public static void Main()
    {
        string path = @"c:\temp\MyTest.txt";

        // This text is added only once to the file.
        if (!File.Exists(path))
        {
            // Create a file to write to.
            string[] createText = { "Hello", "And", "Welcome" };
            File.WriteAllLines(path, createText, Encoding.UTF8);
        }

        // This text is always added, making the file longer over time
        // if it is not deleted.
        string appendText = "This is extra text" + Environment.NewLine;
        File.AppendAllText(path, appendText, Encoding.UTF8);

        // Open the file to read from.
        string[] readText = File.ReadAllLines(path, Encoding.UTF8);
        foreach (string s in readText)
        {
            Console.WriteLine(s);
        }
    }
}
open System
open System.IO
open System.Text

let path = @"c:\temp\MyTest.txt"

// This text is added only once to the file.
if File.Exists path |> not then
    // Create a file to write to.
    let createText = [ "Hello"; "And"; "Welcome" ]
    File.WriteAllLines(path, createText, Encoding.UTF8)

// This text is always added, making the file longer over time
// if it is not deleted.
let appendText =
    "This is extra text" + Environment.NewLine

File.AppendAllText(path, appendText, Encoding.UTF8)

// Open the file to read from.
let readText = File.ReadAllLines(path, Encoding.UTF8)

for s in readText do
    printfn $"{s}"
Imports System.IO
Imports System.Text

Public Class Test
    Public Shared Sub Main()
        Dim path As String = "c:\temp\MyTest.txt"
        Dim sw As StreamWriter

        ' This text is added only once to the file.
        If File.Exists(path) = False Then

            ' Create a file to write to.
            Dim createText() As String = {"Hello", "And", "Welcome"}
            File.WriteAllLines(path, createText, Encoding.UTF8)
        End If

        ' This text is always added, making the file longer over time
        ' if it is not deleted.
        Dim appendText As String = "This is extra text" + Environment.NewLine
        File.AppendAllText(path, appendText, Encoding.UTF8)

        ' Open the file to read from.
        Dim readText() As String = File.ReadAllLines(path, Encoding.UTF8)
        Dim s As String
        For Each s In readText
            Console.WriteLine(s)
        Next
    End Sub
End Class

설명

대상 파일이 이미 있는 경우 잘리고 덮어씁니다.

문자열 배열과 파일 경로가 지정된 경우 이 메서드는 지정된 파일을 열고 지정된 인코딩을 사용하여 문자열 배열을 파일에 쓴 다음 파일을 닫습니다.

적용 대상