File.WriteAllLines Метод

Определение

Создает новый файл, записывает в него одну или несколько строк, затем закрывает файл.Creates a new file, writes one or more strings to the file, and then closes the file.

Перегрузки

WriteAllLines(String, String[], Encoding)

Создает новый файл, записывает указанный массив строк в этот файл, используя заданную кодировку, затем закрывает файл.Creates a new file, writes the specified string array to the file by using the specified encoding, and then closes the file.

WriteAllLines(String, IEnumerable<String>, Encoding)

Создает новый файл, используя указанную кодировку, записывает коллекцию строк в этот файл, затем закрывает файл.Creates a new file by using the specified encoding, writes a collection of strings to the file, and then closes the file.

WriteAllLines(String, String[])

Создает новый файл, записывает в него указанный массив строк и затем закрывает файл.Creates a new file, write the specified string array to the file, and then closes the file.

WriteAllLines(String, IEnumerable<String>)

Создает новый файл, записывает в него коллекцию строк, затем закрывает файл.Creates a new file, writes a collection of strings to the file, and then closes the file.

WriteAllLines(String, String[], Encoding)

Создает новый файл, записывает указанный массив строк в этот файл, используя заданную кодировку, затем закрывает файл.Creates a new file, writes the specified string array to the file by using the specified encoding, and then closes the file.

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

Параметры

path
String

Файл, в который осуществляется запись.The file to write to.

contents
String[]

Массив строк, который нужно записать в файл.The string array to write to the file.

encoding
Encoding

Объект Encoding, представляющий кодировку символов, примененную к массиву строк.An Encoding object that represents the character encoding applied to the string array.

Исключения

path представляет собой строку нулевой длины, содержащую только пробелы или один или несколько недопустимых символов, заданных методом InvalidPathChars.path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars.

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

Указанный путь, имя файла или оба значения превышают максимальную длину, заданную в системе.The specified path, file name, or both exceed the system-defined maximum length.

Указан недопустимый путь (например, он ведет на несопоставленный диск).The specified path is invalid (for example, it is on an unmapped drive).

При открытии файла произошла ошибка ввода-вывода.An I/O error occurred while opening the file.

Параметр path указывает файл, доступный только для чтения.path specified a file that is read-only.

- или --or- path указывает файл, который скрыт.path specified a file that is hidden.

- или --or- Эта операция не поддерживается на текущей платформе.This operation is not supported on the current platform.

- или --or- Параметрpath определяет каталог.path specified a directory.

- или --or- У вызывающего объекта отсутствует необходимое разрешение.The caller does not have the required permission.

Параметр path задан в недопустимом формате.path is in an invalid format.

У вызывающего объекта отсутствует необходимое разрешение.The caller does not have the required permission.

Примеры

В следующем примере кода показано использование метода WriteAllLines для записи текста в файл.The following code example demonstrates the use of the WriteAllLines method to write text to a file. В этом примере создается файл, если он еще не существует, и в него добавляется текст.In this example a file is created, if it doesn't already exist, and text is added to it.

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

Комментарии

Если целевой файл уже существует, он будет переопределен.If the target file already exists, it is overwritten.

При наличии строкового массива и пути к файлу этот метод открывает указанный файл, записывает в файл массив строк, используя указанную кодировку, а затем закрывает файл.Given a string array and a file path, this method opens the specified file, writes the string array to the file using the specified encoding, and then closes the file.

Безопасность

FileIOPermission
для доступа к записи в файл или каталог.for access to write to a file or directory. Связанное перечисление: WriteAssociated enumeration: Write

WriteAllLines(String, IEnumerable<String>, Encoding)

Создает новый файл, используя указанную кодировку, записывает коллекцию строк в этот файл, затем закрывает файл.Creates a new file by using the specified encoding, writes a collection of strings to the file, and then closes the file.

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

Параметры

path
String

Файл, в который осуществляется запись.The file to write to.

contents
IEnumerable<String>

Строки, записываемые в файл.The lines to write to the file.

encoding
Encoding

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

Исключения

Параметр path является пустой строкой, содержит только пробел либо один или несколько недопустимых символов, определенных методом GetInvalidPathChars().path is a zero-length string, contains only white space, or contains one or more invalid characters defined by the GetInvalidPathChars() method.

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

Недопустимый path (например, он ведет на несопоставленный диск).path is invalid (for example, it is on an unmapped drive).

При открытии файла произошла ошибка ввода-вывода.An I/O error occurred while opening the file.

Длина параметра path превышает максимальную длину, определенную в системе.path exceeds the system-defined maximum length.

Параметр path задан в недопустимом формате.path is in an invalid format.

У вызывающего объекта отсутствует необходимое разрешение.The caller does not have the required permission.

Параметр path указывает файл, доступный только для чтения.path specified a file that is read-only.

- или --or- path указывает файл, который скрыт.path specified a file that is hidden.

- или --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.

Комментарии

Если целевой файл уже существует, он будет переопределен.If the target file already exists, it is overwritten.

С помощью этого метода можно создать файл, содержащий следующие сведения:You can use this method to create a file that contains the following:

  • Результаты запроса LINQ to Objects в строках файла, полученных с помощью метода ReadLines.The results of a LINQ to Objects query on the lines of a file, as obtained by using the ReadLines method.

  • Содержимое коллекции, реализующей IEnumerable<T> строк.The contents of a collection that implements an IEnumerable<T> of strings.

WriteAllLines(String, String[])

Создает новый файл, записывает в него указанный массив строк и затем закрывает файл.Creates a new file, write the specified string array to the file, and then closes the file.

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

Файл, в который осуществляется запись.The file to write to.

contents
String[]

Массив строк, который нужно записать в файл.The string array to write to the file.

Исключения

path представляет собой строку нулевой длины, содержащую только пробелы или один или несколько недопустимых символов, заданных методом InvalidPathChars.path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars.

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

Указанный путь, имя файла или оба значения превышают максимальную длину, заданную в системе.The specified path, file name, or both exceed the system-defined maximum length.

Указан недопустимый путь (например, он ведет на несопоставленный диск).The specified path is invalid (for example, it is on an unmapped drive).

При открытии файла произошла ошибка ввода-вывода.An I/O error occurred while opening the file.

Параметр path указывает файл, доступный только для чтения.path specified a file that is read-only.

- или --or- path указывает файл, который скрыт.path specified a file that is hidden.

- или --or- Эта операция не поддерживается на текущей платформе.This operation is not supported on the current platform.

- или --or- Параметрpath определяет каталог.path specified a directory.

- или --or- У вызывающего объекта отсутствует необходимое разрешение.The caller does not have the required permission.

Параметр path задан в недопустимом формате.path is in an invalid format.

У вызывающего объекта отсутствует необходимое разрешение.The caller does not have the required permission.

Примеры

В следующем примере кода показано использование метода WriteAllLines для записи текста в файл.The following code example demonstrates the use of the WriteAllLines method to write text to a file. В этом примере создается файл, если он еще не существует, и в него добавляется текст.In this example a file is created, if it doesn't already exist, and text is added to it.

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

Комментарии

Если целевой файл уже существует, он будет переопределен.If the target file already exists, it is overwritten.

Поведением WriteAllLines метода по умолчанию является запись данных с помощью кодировки UTF-8 без метки порядка байтов (BOM).The default behavior of the WriteAllLines method is to write out data using UTF-8 encoding without a byte order mark (BOM). Если необходимо включить в начало файла идентификатор UTF-8, например метку порядка байтов, используйте перегрузку метода WriteAllLines(String, String[], Encoding) с UTF8 кодировкой.If it is necessary to include a UTF-8 identifier, such as a byte order mark, at the beginning of a file, use the WriteAllLines(String, String[], Encoding) method overload with UTF8 encoding.

При наличии массива строк и пути к файлу этот метод открывает указанный файл, записывает массив строк в файл, а затем закрывает файл.Given a string array and a file path, this method opens the specified file, writes the string array to the file, and then closes the file.

Безопасность

FileIOPermission
для доступа к записи в файл или каталог.for access to write to a file or directory. Связанное перечисление: WriteAssociated enumeration: Write

WriteAllLines(String, IEnumerable<String>)

Создает новый файл, записывает в него коллекцию строк, затем закрывает файл.Creates a new file, writes a collection of strings to the file, and then closes the file.

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

Файл, в который осуществляется запись.The file to write to.

contents
IEnumerable<String>

Строки, записываемые в файл.The lines to write to the file.

Исключения

Параметр path является пустой строкой, содержит только пробел либо один или несколько недопустимых символов, определенных методом GetInvalidPathChars().path is a zero-length string, contains only white space, or contains one or more invalid characters defined by the GetInvalidPathChars() method.

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

Недопустимый path (например, он ведет на несопоставленный диск).path is invalid (for example, it is on an unmapped drive).

При открытии файла произошла ошибка ввода-вывода.An I/O error occurred while opening the file.

Длина параметра path превышает максимальную длину, определенную в системе.path exceeds the system-defined maximum length.

Параметр path задан в недопустимом формате.path is in an invalid format.

У вызывающего объекта отсутствует необходимое разрешение.The caller does not have the required permission.

Параметр path указывает файл, доступный только для чтения.path specified a file that is read-only.

- или --or- path указывает файл, который скрыт.path specified a file that is hidden.

- или --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 writes selected lines from a sample data file to a file.

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).The default behavior of the WriteAllLines(String, IEnumerable<String>) method is to write out data by using UTF-8 encoding without a byte order mark (BOM). Если необходимо включить в начало файла идентификатор UTF-8, например метку порядка байтов, используйте перегрузку метода WriteAllLines(String, IEnumerable<String>, Encoding) с UTF8 кодировкой.If it is necessary to include a UTF-8 identifier, such as a byte order mark, at the beginning of a file, use the WriteAllLines(String, IEnumerable<String>, Encoding) method overload with UTF8 encoding.

Если целевой файл уже существует, он будет переопределен.If the target file already exists, it is overwritten.

Этот метод можно использовать для создания содержимого для класса коллекции, который принимает в своем конструкторе IEnumerable<T>, например List<T>, HashSet<T>или класс SortedSet<T>.You can use this method to create the contents for a collection class that takes an IEnumerable<T> in its constructor, such as a List<T>, HashSet<T>, or a SortedSet<T> class.

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