Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 9 Файлы.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
140.06 Кб
Скачать

10.2.1. Класс StreamWriter. Запись в текстовый файл

Получив объект FileStream, можно поместить его в оболочку StreamWriter или StreamReader и использовать их методы для работы с файлом. Эти классы значительно облегчают работу с текстовыми файлами, но не позволяют переставлять файловый указатель в произвольную позицию.

Класс StreamWriter позволяет записывать символы и строки в файл, оставляя классу внутреннее преобразование и запись объекта FileStream.

Запись в текстовый файл должна состоять из следующих шагов:

  1. создать поток FileStream;

  2. создать объект StreamWriter, связав его с потоком;

  3. методом Write() или WriteLine() записать данные;

  4. методом Close(), освободив промежуточный буфер, закрыть файл;

  5. методом Close(), закрыть файловый поток.

Пример 10.1. Записать несколько строк в текстовый файл

Листинг 10.1. Запись строк в текстовый файл

static void Main(string[] args)

{

try

{

FileStream aFile =

new FileStream("Test.txt",

FileMode.OpenOrCreate);

StreamWriter f =

new StreamWriter(aFile);

bool ok = true;

f.WriteLine("Первая строка");

f.WriteLine("Дата: {0}",

DateTime.Now.ToLongDateString());

f.Write("Третья строка,");

f.Write(" ok = {0}.", ok);

f.Close();

aFile.Close();

}

catch (IOException e)

{

Console.WriteLine("Ошибка IO!");

Console.WriteLine(e.ToString());

Console.ReadLine();

return;

}

}

В результате работы этой программы в папке ..\Debug будет создан файл Test.txt, в котором будут следующие стоки:

Первая строка

Дата: 9 декабря 2012 г.

Третья строка, ok = True.

Существует несколько способов создания объекта StreamWriter:

  1. Если объект FileStream уже создан, можно использовать такой код для создания объекта StreamWriter:

FileStream aFile = new FileStream("Test.txt",

FileMode.CreateNew);

StreamWriter f = new StreamWriter(aFile) ;

  1. Объект StreamWriter можно также создать непосредственно из файла:

StreamWriter f = new StreamWriter("Test.txt", true);

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

  • Если логический параметр установлен в false, то создается новый файл или существующий файл усекается до нулевого размера, а затем открывается.

  • Если оно установлено в true, файл открывается, и его данные сохраняются. Если файла нет, он создается.

В отличие от создания объекта FileStream, создание StreamWriter не предоставляет аналогичного набора опций. Помимо логического параметра для дописывания или создания нового файла, нет возможности специфицировать свойство FileMode, как это делалось с классом FileStream. He имея возможности установить свойство FileAccess, всегда можно установить привилегии чтения/записи файла. Чтобы использовать любые из расширенных параметров, их сначала потребуется специфицировать в конструкторе FileStreeam, а затем создать StreamWriter из объекта FileStream.