Примеры Delphi и C# из жизни

Примеры программирования на языках Delphi, C#

 




Как сохранить или прочитать текст из файла? | C#

Очень простой пример чтения и записи строк в текстовых файлах.

Объектная природа языка C# налагает некоторые ограничения на такую простую операцию как запись и чтение данных из файлов, в частности текстовых. Эти операции производятся с помощью «потоков», которые содержат в себе методы с данными и скрывают от пользователя тонкости работы с дисковой системой.

В приведенном примере для хранения строк в памяти используется класс StringBuilder .
#region Запись в файл
StreamWriter sw; // объект потока для записи
StringBuilder builder; // построитель строк

builder = new StringBuilder();
// добавляем текст
builder.Append("В комнате четыре угла.");
// перевод строки после добавления текста
builder.AppendLine("В каждом углу сидит кошка.");
// форматированный текст
builder.AppendFormat("Напротив каждой кошки по три ({0}) кошки. На хвосте каждой кошки по одной ({1}) кошке.", 3, 1);
builder.AppendLine();
builder.AppendLine("Сколько же всего кошек в комнате?");
builder.AppendFormat("Сегодня: {0:F}.", DateTime.Now);
// создаем поток для записи — file.txt с добавлением в конец файла, кодировка UTF8
using (sw = new StreamWriter(@"file.txt", true, Encoding.UTF8)) {
    sw.WriteLine("Начинаем запись"); // запись строки
    sw.Write(builder.ToString()); // запись сформированного списка строк
    // сбрасываем буфера и даем доступ к файлу
    sw.Close();
}
#endregion

#region Чтение из файла
StreamReader sr; // объект потока для чтения
StringBuilder builder;

builder = new StringBuilder();
using (sr = new StreamReader(@"file.txt")) {
    String line;
    // читаем строки до конца файла
    while ( (line = sr.ReadLine() ) != null) {
        builder.AppendLine(line);
    }
    sr.Close(); } // выводим содержимое в диалоговое окно MessageBox.Show(builder.ToString());
#endregion