Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

FileStream(string filename, FileMode mode, FileAccess how)




Значение, передаваемое с помощью параметра how, определяет способ доступ к файлу. Этот параметр может принимать одно из значений, определенных перечислением FileAccess: FileAccess.Read, FileAccess.Write, FileAccess.ReadWrite.

 

Текстовые файлы

Несмотря на то, что байтовая обработка данных получила широкое распространение, C# также поддерживает работу с символьными потоками, а, следовательно, с текстовыми файлами. Символьные потоки работают непосредственно с Unicode-символами. В общем случае, чтобы выполнять файловые операции с текстом, нужно поместить объект класса FileStream внутрь объекта класса StreamReader или класса StreamWriter. Эти классы автоматически преобразуют байтовый поток в символьный и наоборот. Иерархия классов, предназначенных для работы с текстовыми файлами, приведена на рисунке 4.2.

 

Рис. 4.2. Иерархия классов работы с текстовыми файлами

 

В классах StreamWriter и StreamReader определено несколько конструкторов. Чащевсегоиспользуютсяследующийформат:

StreamWriter(Stream stream)

StreamReader(Stream stream)

Здесь элеменstream означает имя открытого потока. Эти конструкторы генерируют исключения типа ArgumentException, если поток stream не открыт для вывода или ввода соответственно, и исключение типа ArgumentNullException, если он (поток) имеет null-значение. Созданные объекты автоматически выполняют преобразование символов в байты или наоборот.

Иногда удобнее открывать файл с помощью классов StreamWriter и StreamReader. Дляэтогоиспользуютсяследующиеконструкторы:

StreamWriter(stringfilename)

StreamReader(stringfilename)

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

Значительная часть функциональных возможностей класса StreamWriter обеспечивается при помощи компонентов, унаследованных от TextWriter. Эти компоненты представлены в таблице:

 

Компонент Описание

Методы

virtual void Close() Закрывает соответствующий объект Writer
virtual voidFlush() Очищает все буферы для текущего объекта Writer и записывает накопленные в них данные в место их постоянного хранения, но при этом сам объект Writer не закрывается
virtual void Write(...) Перегруженный метод. Записывает данные требуемого типа в текстовом формате в поток без перевода строки
virtual void WriteLine(...) Перегруженный метод. Записывает данные требуемого типа в текстовом формате в поток с переводом строки

Свойство

virtual string NewLine Получает или устанавливает последовательность символов, означающих начало новой строки. По умолчанию - \r\n

 

Соответственно, большинство компонентов класса StreamReader для чтения из текстового файла унаследовано от класса TextReader:

 

Методы Описание
virtual void Close() Закрывает соответствующий объект Reader
virtual int Peek() Возвращает следующий символ, не изменяя позицию указателя в файле
virtual int Read() Считывает данные из потока на входе
virtual intReadBlock (char[] buffer, int index, int count) Считывает count символов, начиная с позиции index, и записывает считанные данные в буфер buffer
virtual string ReadLine() Считывает строку данных из текущего потока. Пустая строка (nullstring) означает конец файла (EOF)
virtual string ReadToEnd() Считывает все символы с текущей позиции до конца потока

 

Двоичные файлы

Для считывания и записи двоичных значений встроенных C#-типов используются классы BinaryReader и BinaryWriter. Иерархия этих классов приведена на рисунке 4.3.

 

Рис. 4.3. Иерархия классов двоичных файлов

 

Классы BinaryWriter и BinaryReader представляют собой оболочки для байтового потока, которые управляют соответственно записью и чтением двоичных данных. Их наиболее часто используемые конструкторы имеют вид:










Последнее изменение этой страницы: 2018-06-01; просмотров: 159.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...