Практическое руководство. Запись в текстовый файл (Руководство по программированию на C#)
В этих примерах показаны различные способы записи текста в файл. В следующих двух примерах используются статические методы на классе File для записи в текстовый файл либо полного массива строк, либо полной строки. В примере 3 показано, как добавить текст в файл, если перед записью в файл необходимо обрабатывать отдельно каждую строку. В примерах 1-3 происходит перезапись всего существующего содержимого файла. В примере 4 показано, как добавить текст в существующий файл.
Пример
class WriteTextFile
{
static void Main()
{
// These examples assume a "C:\Users\Public\TestFolder" folder on your machine.
// You can modify the path if necessary.
// Example #1: Write an array of strings to a file.
// Create a string array that consists of three lines.
string[] lines = { "First line", "Second line", "Third line" };
// WriteAllLines creates a file, writes a collection of strings to the file,
// and then closes the file.
System.IO.File.WriteAllLines(@"C:\Users\Public\TestFolder\WriteLines.txt", lines);
// Example #2: Write one string to a text file.
string text = "A class is the most powerful data type in C#. Like a structure, " +
"a class defines the data and behavior of the data type. ";
// WriteAllText creates a file, writes the specified string to the file,
// and then closes the file.
System.IO.File.WriteAllText(@"C:\Users\Public\TestFolder\WriteText.txt", text);
// Example #3: Write only some strings in an array to a file.
// The using statement automatically closes the stream and calls
// IDisposable.Dispose on the stream object.
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\Users\Public\TestFolder\WriteLines2.txt"))
{
foreach (string line in lines)
{
// If the line doesn't contain the word 'Second', write the line to the file.
if (!line.Contains("Second"))
{
file.WriteLine(line);
}
}
}
// Example #4: Append new text to an existing file.
// The using statement automatically closes the stream and calls
// IDisposable.Dispose on the stream object.
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\Users\Public\TestFolder\WriteLines2.txt", true))
{
file.WriteLine("Fourth line");
}
}
}
//Output (to WriteLines.txt):
// First line
// Second line
// Third line
//Output (to WriteText.txt):
// A class is the most powerful data type in C#. Like a structure, a class defines the data and behavior of the data type.
//Output to WriteLines2.txt after Example #3:
// First line
// Third line
//Output to WriteLines2.txt after Example #4:
// First line
// Third line
// Fourth line
Во всех этих примерах осуществляется запись строковых литералов в файлы, но, вероятнее всего, вы будете использовать метод Format, который содержит множество параметров для записи различных типов значений, с выравниванием по левому или правому краю поля, с заполнением или без и т. д.
Компиляция кода
Скопируйте код в консольное приложение.
Замените "c:\testdir" на фактическое имя папки в компьютере или создайте папку с этим именем.
Отказоустойчивость
При следующих условиях возможно возникновение исключения:
Файл существует и является файлом только для чтения.
Имя пути имеет слишком большую длину.
Диск может быть переполнен.
См. также
Основные понятия
Руководство по программированию на C#
Другие ресурсы
Файловая система и реестр (Руководство по программированию на C#)
Пример. Сохранение коллекции настраиваемых объектов в локальном хранилище