ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Шрифт:
Эта версия перегруженного метода Open требует указания трех параметров. Первый параметр задает общий вид запроса ввода-вывода (создание нового файла, открытие существующего файла, добавление данных в файл и т.п.) с помощью перечня FileMode.
Второй параметр, значение из перечня FileAccess, используется для определения характеристик чтения/записи в соответствующем потоке.
Наконец, третий параметр, FileShare, указывает возможности совместного использования файла другими дескрипторами файла. Вот как выглядит соответствующий перечень.
Методы FileInfo.OpenRead и FileInfo.OpenWrite
Хотя метод FileInfo.Open и обладает очень гибкими возможностями получения дескриптора файла, класс FileInfo также предлагает члены с именами OpenRead и OpenWrite. Как вы можете догадаться, эти методы возвращают должным образом сконфигурированный только для чтения или только для записи тип FileStream, без необходимости указания соответствующих значений перечней.
Подобно FileInfo.Create и FileInfo.Open, методы OpenRead и OpenWrite возвращают объект FileStream.
Метод FileInfo.OpenText
Другим членом типа FileInfo, связанным с открытием файлов, является OpenText. В отличие от Create, Open, OpenRead и OpenWrite, метод OpenText возвращает экземпляр типа StreamReader, а не типа FileStream.
Чуть позже вы увидите, что тип StreamReader обеспечивает возможность чтения символьных данных из соответствующего файла.
Методы FileInfo.CreateText и FileInfo.AppendText
И последними интересующими нас на этот момент методами будут CreateText и AppendText, которые возвращают ссылку на StreamWriter, как показано ниже.
Вы должны догадаться сами, что тип StreamWriter предлагает способ записи символьных данных в соответствующий файл.
Работа с типом File
Тип File предлагает функциональные возможности, почти идентичные возможностям типа FileInfo, но с помощью ряда статических членов. Подобно FileInfo, тип File предлагает методы AppendText, Create, CreateText, Open, OpenRead, OpenWrite и OpenText. Во многих случаях типы File и
FileStream оказываются взаимозаменяемыми. Так, в каждом из предыдущих примеров вместо FileStream можно использовать тип File.