File.WriteAllLines Метод

Определение

Создает новый файл, записывает в него одну или несколько строк, затем закрывает файл.

Перегрузки

WriteAllLines(String, IEnumerable<String>)

Создает новый файл, записывает в него коллекцию строк, затем закрывает файл.

WriteAllLines(String, String[])

Создает новый файл, записывает в него указанный массив строк и затем закрывает файл.

WriteAllLines(String, IEnumerable<String>, Encoding)

Создает новый файл, используя указанную кодировку, записывает коллекцию строк в этот файл, затем закрывает файл.

WriteAllLines(String, String[], Encoding)

Создает новый файл, записывает указанный массив строк в этот файл, используя заданную кодировку, затем закрывает файл.

WriteAllLines(String, IEnumerable<String>)

Создает новый файл, записывает в него коллекцию строк, затем закрывает файл.

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>

Строки, записываемые в файл.

Исключения

платформа .NET Framework и .NET Версии Core старше 2.1: path это строка нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов, определенных методомGetInvalidPathChars().

Либо path, либо contents имеет значение null.

Недопустимый path (например, он ведет на несопоставленный диск).

При открытии файла произошла ошибка ввода-вывода.

Длина параметра 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());
            }
        }
    }
}
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>) заключается в записи данных с помощью кодировки UTF-8 без метки порядка байтов (BOM). Если необходимо включить идентификатор UTF-8, например метку порядка байтов, в начале файла используйте перегрузку WriteAllLines(String, IEnumerable<String>, Encoding) метода с UTF8 кодировкой.

Если целевой файл уже существует, он будет переопределен.

Этот метод можно использовать для создания содержимого класса коллекции, принимающего IEnumerable<T> в конструкторе, например List<T>HashSet<T>класса или SortedSet<T> класса.

Применяется к

WriteAllLines(String, String[])

Создает новый файл, записывает в него указанный массив строк и затем закрывает файл.

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[]

Массив строк, который нужно записать в файл.

Исключения

платформа .NET Framework и .NET Версии Core старше 2.1: path строка нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().

Либо path, либо contents имеет значение null.

Указанный путь, имя файла или оба значения превышают максимальную длину, заданную в системе.

Указан недопустимый путь (например, он ведет на несопоставленный диск).

При открытии файла произошла ошибка ввода-вывода.

Параметр 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);
        }
    }
}
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 метод записывает данные с помощью кодировки UTF-8 без метки порядка байтов (BOM). Если необходимо включить идентификатор UTF-8, например метку порядка байтов, в начале файла используйте перегрузку WriteAllLines(String, String[], Encoding) метода с UTF8 кодировкой.

Учитывая массив строк и путь к файлу, этот метод открывает указанный файл, записывает массив строк в файл, а затем закрывает файл.

Применяется к

WriteAllLines(String, IEnumerable<String>, Encoding)

Создает новый файл, используя указанную кодировку, записывает коллекцию строк в этот файл, затем закрывает файл.

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

Кодировка символов, которую нужно использовать.

Исключения

платформа .NET Framework и .NET Версии Core старше 2.1: path это строка нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов, определенных методомGetInvalidPathChars().

Какой-либо из параметров path, contents или encoding имеет значение null.

Недопустимый path (например, он ведет на несопоставленный диск).

При открытии файла произошла ошибка ввода-вывода.

Длина параметра path превышает максимальную длину, определенную в системе.

Параметр path задан в недопустимом формате.

У вызывающего объекта отсутствует необходимое разрешение.

Параметр path указывает файл, доступный только для чтения.

-или- path указывает файл, который скрыт.

-или- Эта операция не поддерживается на текущей платформе.

-или- path является каталогом.

-или- У вызывающего объекта отсутствует необходимое разрешение.

Комментарии

Если целевой файл уже существует, он будет переопределен.

Этот метод можно использовать для создания файла, содержащего следующее:

Применяется к

WriteAllLines(String, String[], Encoding)

Создает новый файл, записывает указанный массив строк в этот файл, используя заданную кодировку, затем закрывает файл.

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, представляющий кодировку символов, примененную к массиву строк.

Исключения

платформа .NET Framework и .NET Версии Core старше 2.1: path строка нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().

Либо path, либо contents имеет значение null.

Указанный путь, имя файла или оба значения превышают максимальную длину, заданную в системе.

Указан недопустимый путь (например, он ведет на несопоставленный диск).

При открытии файла произошла ошибка ввода-вывода.

Параметр 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);
        }
    }
}
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

Комментарии

Если целевой файл уже существует, он будет переопределен.

Учитывая массив строк и путь к файлу, этот метод открывает указанный файл, записывает массив строк в файл с помощью указанной кодировки, а затем закрывает файл.

Применяется к