Ватсон Карли
Шрифт:
Реальная иерархия связанных с потоком классов в пространстве имен
Что касается чтения из файлов или записи в файлы, то мы будем связаны в основном со следующими классами:
□
□
Упомянем также другие классы, которые могут оказаться полезными, хотя они и не будут представлены в приводимых примерах. Если вы хотите использовать эти классы, обратитесь к документации MSDN, чтобы получить подробности об их работе.
Различие между использованием этих классов и непосредственным использованием описанных ниже потоковых объектов состоит в том, что базовый поток работает с байтами. Например, пусть часть процесса сохранения некоторого документа состоит в записи содержимого переменной типа
Чтение и запись двоичных файлов
Чтение и запись двоичных файлов делается обычно с помощью класса
Класс FileStream
Экземпляр
□ Файл для доступа.
□ Режим, который указывает, как необходимо открыть файл. Например, собираетесь ли вы создать новый файл или открыть существующий файл, и, если открывается существующий файл, должна ли какая-либо операция записи интерпретироваться как перезапись содержимого файла или как добавление к файлу.
□ Доступ, указывающий, как будет осуществляться доступ к файлу, будет ли выполняться чтение или запись в файл или и то и другое.
□ Общий доступ. Другими словами, будет ли осуществляться исключительный доступ к файлу, или желательно, чтобы другие потоки могли одновременно получать доступ к этому файлу. Если так, то должны ли другие потоки иметь доступ для чтения файла, записи в него или для того и другого.
Первый из этих видов данных представлен обычно строкой, которая содержит полное имя пути доступа файла, и в этой главе будут рассматриваться только те конструкторы, которые требуют строку. Помимо этих конструкторов, существуют и некоторые другие, которые получают дескриптор файла Windows в стиле старого Windows API. Остальные три вида данных представлены тремя перечислениями .NET, называемыми соответственно
Перечисление | Значения |
---|---|
FileMode (режим файла) | Append (добавить), Create (создать), CreateNew (создать новый), Open (открыть), OpenOrCreate (открыть или создать), Truncate (обрезать) |
FileAccess (доступ к файлу) | Read (чтение), ReadWrite (чтение-запись), Write (запись) |
FileShare (общий доступ к файлу) | None (нет), Read (чтение), ReadWrite (чтение-запись), Write (запись) |
Отметим, что в случае