Файлы и потоки в C#: общая информация
В C# любой файл представляет собой последовательный поток байтов. Конец каждого файла либо имеет маркер конца файла, либо байт с особым номером, который записывается в соответствии со структурой административных данных.
В языке C# создается объект при открытии файла, а затем с данным объектом уже ассоциируется поток. Когда программа выполняется, создается три объекта потока, доступ к которым можно получить с помощью следующих свойств:
- Console.Out – возвращается объект потока стандартного вывода; с помощью него информация и появляется на мониторе компьютера.
- Console.In – возвращает объект потока стандартного ввода; с помощью него имеется возможность вводить информацию с клавиатуры.
- Console.Error – возвращается объект потока стандартной ошибки; появляется на мониторе информация об ошибках.
- FileStream – ввод и вывод в файл; используется абстрактный класс Stream для создания объекта потока для работы с файлом.
- StreamReader – чтение текста из файла; TextReader соответственно.
- StreamWriter – запись текста в файл; TextWriter соответсвенно.
В C# имеется класс BinaryFormatter, с помощью которого можно упорядочить объект Stream(то есть преобразовать его в такой формат, который будучи записан в файл, не теряет никакую информацию) и снять упорядочивание (то есть получить объект из файла путем считывания его формата).
Для работы с потоками в виде байтов (точнее для обеспечения функциональности и представления) есть абстрактный класс System.IO.Stream. Вообще, для операций ввода-вывода в C# имеется немало классов. Информация из файлов может считываться последовательно или выборочно с помощью класса FileStream. Для прямой передачи данных в память и извлечения их применяют MemoryStream: этот класс работает гораздо быстрее остальных, физически пишущих на диск данные. Есть еще BufferStream: с помощью этого класса производится буферизация получения данных из потока и передачи в него. Под буферизацией понимается такой способ ввода-вывода, при котором информация идет в специальный буфер, накапливается там, и только после заполнения буфера начинает производиться физическая передача информации. Это позволяет повысить быстродействие работы с информацией.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.