Файлы. Работа с файлами на чтение и запись. Ключевые перечисления.Файловые потоки. Типовые операции.
Центральную часть потоковой системы языка C# занимает класс Stream пространства имен System.IO. Класс Stream представляет собой байтовый поток и является базовым для всех остальных потоковых классов. Из класса Stream выведен такой класс как FileStream, разработанный для организации файлового ввода-вывода. Для преобразования байтового потока в символьный разработаны такие классы как StreamWriter и StreamReader, представляющие собой оболочки для класса FileStream. Далее мы подробно рассмотрим работу с классами FileStream, StreamWriter и StreamReader.
Поток (stream) – это абстракция, которая генерирует или принимает данные. С помощью потока можно читать данные из различных источников (клавиатура, файл), или записывать данные в различные источники (принтер, экран, файл).
Байтовый поток
Чтобы создать байтовый поток, связанный с файлом, создается объект класса FileStream. В данном классе определено несколько конструкторов. Чаще всего используется конструктор, который открывает поток для чтения и/или записи:
FileStream(string filename, FileMode mode)
где:
1) параметр filename определяет имя файла, с которым будет связан поток ввода-вывода данных;
2) параметр mode определяет режим открытия файла, который может принимать одно из возможных значений, определенных перечислением FileMode:
1) FileMode.Append – предназначено для добавления данных в конец файла;
2) FileMode.Create – предназначено для создания нового файла, причем если существует
файл с таким же именем, то он будет предварительно удален;
3) FileMode.CreateNew – предназначено для создания нового файла, при этом файл с
таким же именем не должен существовать;
4) FileMоde.Open – предназначено для открытия существующего файла;
5) FileMode.ОpenOrCreate – если файл существует, то его необходимо открыть; в противном случае – создать новый;
6) FileMode.Truncate – предназначено для открытия существующего файла, с полным уничтожением его содержимого.
Символьный поток
Чтобы создать символьный поток, нужно поместить объект класса FileStream «внутрь» объекта класса StreamWriter, или объекта класса StreamReader. В этом случае байтовый поток будет автоматически преобразовываться в символьный.
Класс StreamWriter предназначен для организации выходного символьного потока. В данном классе определено несколько конструкторов, один из поторых записывается следующим образом:
StreamWriter(Stream stream);
где параметр stream определяет имя уже открытого байтового потока. Например, создать экземпляр класса StreamWriter можно следующим образом:
FileStream file = new FileStream("d:/Example/text.txt",
FileMode.Create, FileAccess.Write);
StreamWriter fileOut = new StreamWriter(file));
Не нашли, что искали? Воспользуйтесь поиском:
|