Обмен данными с устройствами в C# выполняется с помощью подсистемы ввода-вывода (IO) и классов библиотеки .NET. Реализуется с помощью потоков.
Поток (stream) – абстрактное понятие, относящееся к любому переносу данных от источника к приемнику и наоборот. Поток определяется как после- довательность байтов и не зависит от конкретного устройства, с которым про- изводится обмен. Потоки обеспечивают единообразие при работе со стандарт- ными типами данных и с типами, определяемыми пользователем. Обмен с по- током для повышения скорости передачи данных производится, как правило, через буфер, который выделяется для каждого открытого файла.
Чтение (ввод – input) – передача данных с внешнего устройства в опера- тивную память, обратный процесс – запись (вывод – output).
Для работы с потоками и файлами необходимо подключать пространство имен System.IO. Выполнять обмен с внешними устройствами можно на уровне:
двоичного представления данных – классы BinaryReader,BinaryWriter;
байтов – класс FileStream;
текста (строк) – классы StreamWriter,StreamReader.
Доступ к файлам может быть:
последовательным – очередной элемент можно прочитать (записать) толь- ко после предыдущего элемента;
произвольным или прямым – выполняется чтение (запись) произвольно- го элемента по заданному адресу.
Прямой доступ при отсутствии дальнейших преобразований обеспечивает более высокую скорость получения нужной информации. В двоичных и байтовых потоках можно использовать оба метода доступа. Для текстовых файлов возмо- жен только последовательный доступ.
Для открытия файла на запись текста создается поток – объект класса StreamWriter. Параметрами конструктора служат имя файла imf и режим записи (true – дозапись, false – перезапись):
StreamWriter fw = new StreamWriter( imf, true);.
Заметим, что символы, которые можно ошибочно принять за управляющие, в имени файла необходимо экранировать, например, слешами "D:\\work\\my.txt", или все имя целиком с помощью символа «собака» @"D:\work\my.txt".
Для дальнейшей работы используется имя (дескриптор) созданного объекта