Книга: C# для профессионалов. Том II

Класс StreamWriter

Класс StreamWriter

Он работает практически таким же образом, как и StreamReader, за исключением того только, что StreamWriter используется для записи в файл (или в другой поток). Возможности создания StreamWriter включают в себя:

StreamWriter sw = new StreamWriter(@"C:My DocumentsReadMe.txt");

Приведенный выше код будет использовать кодирование UTF8, которое рассматривается в .NET как метод кодирования по умолчанию. Если желательно определить альтернативное кодирование:

StreamWriter sw = new StreamWriter(@"C:My DocurnentsReadMe.txt", true, Encoding.ASCII);

В этом конструкторе вторым параметром является Boolean, который указывает, должен ли файл быть открыт для добавления. Странно, но не существует конструктора, который получает только имя файла и класс кодирования.

Конечно, можно соединить StreamWriter с файловым потоком, чтобы предоставить больший контроль над параметрами открытия файла:

FileStream fs = new FileStream(@"C:Му DocumentsReadMe.txt",
FileMode.CreateNew, FileAcces.Write, FileShare.ShareRead);
StreamWriter sw = new StreamWriter(fs);
FileInfo
не реализует никаких методов, которые возвращают StreamWriter. Альтернативно, если вы захотите создать новый файл и начать записывать в него данные, то может оказаться полезной такая последовательность действий:

FileInfo MyFile = new FileInfo(@"C:My DocumentsNewFile.txt");
StreamWriter sw = MyFile.CreateText();

Так же, как и со всеми другими потоковыми классами, важно закрыть StreamWriter, когда работа закончена:

sw.Close();

Запись в поток делается с помощью любого из четырех перегружаемых методов StreamWriter.Write(). Простейший из них записывает строку и дополняет ее комбинацией возврат каретки — перевод строки:

string NextLine = "Groovy Line";
sw.Write(NextLine);

Можно также записать один символ:

char NextChar = 'а';
sw.Write(NextChar);

Массив символов также возможен:

char [] Char Array = new char[100];
// инициализация этого массива символов
sw.Write(CharArray);

Можно даже записать часть массива символов:

int nCharsToWrite = 50;
int StartAtLocation = 25;
char [] CharArray = new char[100];
// инициализируем эти символы
sw.Write(CharArray, StartAtLocation, nCharsToWrite);

Оглавление книги

Оглавление статьи/книги

Генерация: 1.572. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз