Файловый и потоковый ввод-вывод



Пространство имен System.IO содержит типы, позволяющие выполнять синхронное и асинхронное чтение и запись данных в потоки или файлы.

Ниже перечислены отличительные признаки, которые помогут понять разницу между файлом и потоком. Файл — это именованная и упорядоченная коллекция отдельных последовательностей байтов, имеющих постоянное место хранения. Следовательно, при работе с файлами мы оперируем такими понятиями, как путь к каталогу, дисковый накопитель, имя файла и имя каталога. В отличие от файлов потоки предоставляют возможность писать и читать байты из вспомогательного запоминающего устройства, которым может являться одно из нескольких устройств хранения информации. Существуют как вспомогательные запоминающие устройства, отличные от дисков, так и несколько типов потоков, отличных от файловых потоков. Например, есть сетевой поток, поток памяти и поток для чтения и записи на магнитную ленту.

Основы файлового ввода-вывода

Абстрактный базовый класс Stream поддерживает чтение и запись байтов. Класс Stream поддерживает асинхронный ввод и вывод. По умолчанию его реализация определяет операции синхронного чтения и записи на основе соответствующих им асинхронных методов, и наоборот.

Все классы, которые работают с потоками, являются производными от класса Stream. Класс Stream и его производные классы предоставляют способ просмотра источников данных и хранилищ объектов, изолируя программиста конкретных от специфических деталей операционной системы и базовых устройств.

При работе с потоками используются следующие основные операции:

· Потоки могут быть считаны. Чтение — это перенос информации из потока в структуру данных, такую как массив байтов.

· В потоки можно вносить записи. Запись — это перенос информации из источника данных в поток.

· Потоки поддерживают поиск. Поиск — это выяснение и изменение текущей позиции внутри потока.

В зависимости от лежащих в основе источника или хранилища данных потоки могут поддерживать только некоторые из этих возможностей. Например, NetworkStreams не поддерживает поиск. Свойства CanRead, CanWrite и CanSeek из Stream и его производных классов определяют операции, поддерживаемые различными потоками.


Classes Used for File I/O

Directory provides static methods for creating, moving, and enumerating through directories and subdirectories.

DirectoryInfo provides instance methods for creating, moving, and enumerating through directories and subdirectories.

DriveInfo provides instance methods for accessing information about a drive.

File provides static methods for the creation, copying, deletion, moving, and opening of files, and aids in the creation of a FileStream.

FileInfo provides instance methods for the creation, copying, deletion, moving, and opening of files, and aids in the creation of a FileStream.

FileStream supports random access to files through its Seek method. FileStream opens files synchronously by default, but supports asynchronous operation as well.

FileSystemInfo is the abstract base class for FileInfo and DirectoryInfo.

Path provides methods and properties for processing directory strings in a cross-platform manner.

DeflateStream provides methods and properties for compressing and decompressing streams using the Deflate algorithm.

GZipStream provides methods and properties for compressing and decompressing streams. By default, this class uses the same algorithm as the DeflateStream class, but can be extended to use other compression formats.

SerialPort provides methods and properties for controlling a serial port file resource.

File, FileInfo, DriveInfo, Path, Directory, and DirectoryInfo are sealed classes. You can create new instances of these classes, but they cannot have derived classes.


Классы, используемые в файловом вводе и выводе

Directory предоставляет статические методы операций создания, перемещения и перечисления в директориях и поддиректориях.

DirectoryInfo предоставляет методы экземпляра операций создания, перемещения и перечисления в директориях и поддиректориях.

DriveInfo предоставляет методы экземпляра для доступа к сведениям о диске.

File предоставляет статические методы для создания, копирования, удаления, перемещения и открытия файлов, а также помогает при создании объектов FileStream.

FileInfo предоставляет методы экземпляра для создания, копирования, удаления, перемещения и открытия файлов, а также помогает при создании объектов FileStream.

FileStream поддерживает произвольный доступ к файлам с помощью метода Seek. По умолчанию класс FileStream открывает файлы синхронно, но поддерживает и асинхронные операции.

FileSystemInfo является абстрактным базовым классом для FileInfo и DirectoryInfo.

Path предоставляет методы и свойства для обработки строк каталогов межплатформенным способом.

DeflateStream предоставляет методы и свойства для сжатия и распаковки потоков с использованием Deflate алгоритма.

GZipStream предоставляет методы и свойства для сжатия и распаковки потоков. По умолчанию этот класс использует тот же алгоритм, что и класс DeflateStream, но он может быть расширен для использования других форматов сжатия.

SerialPort предоставляет методы и свойства для управления файлом ресурсов порта с последовательным выводом данных.

Класс File, FileInfo, DriveInfo, Path, Directory, и DirectoryInfo являются изолированными. Можно создавать новые экземпляры этих классов, но они не могут иметь производных классов.

 


Дата добавления: 2019-03-09; просмотров: 265; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!