Иллюстрированный самоучитель по VB.NET

       

Ввод-вывод


Ввод-вывод

  • Каталоги и файлы
  • Класс Path
  • Класс Directory
  • Классе File
  • Атрибуты файла
  • Классы Directorylnfo и FileInfo
  • Рекурсивный просмотр дерева каталогов
  • Важнейшие члены классов FileSystemlnfo, FileInfo и Directorylnfo
  • Потоки данных
  • Запись в файл
  • Чтение и запись двоичных данных: классы BinaryReader и BinaryWriter
  • TextReader, TextWriter и производные классы


  • Объектные потоки: сохранение и восстановление объектов
  • Простая сериализация
  • Простое восстановление
  • Применение сериализации при клонировании объектов
  • Практический пример: динамический список с поддержкой сериализации
  • Сетевые потоки
  • Монитор файловой системы
  • В прежних версиях Visual Basic использовались разные средства обработки данных, причем выбор определялся типом источника данных. Например, обработка данных, прочитанных из файла на диске, принципиально отличалась от обработки данных, загруженных из Интернета. Эти времена остались в прошлом. Одной из целей, поставленных при проектировании .NET Framework, было обеспечение унифицированного механизма обработки данных, не зависящего от источника.

    Центральное место в этом механизме занимает понятие потока (stream). Термин «поток» в данном случае происходит от выражения «поток байтов». Собственно, все данные, с которыми работает компьютер, — числа, текст и графика — сводятся к обычной последовательности байтов. Таким образом, подход, избранный проектировщиками .NET Framework, выглядит вполне логично — они разработали абстрактный класс, выполняющий обобщенные операции с данными. Наличие абстрактного класса упрощает программирование ввода-вывода в VB .NET и выявляет сходство между разнородными операциями. Короче говоря, абстрактный класс Stream, помеченный ключевым словом Mustlnherit, является идеальной базой для построения объектно-ориентированной иерархии ввода-вывода.

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

    Глава завершается примером использования новых серверных средств RAD (Rapid Application Development) для написания простого монитора файловой системы. Программа следит за изменениями в каталогах (такими, как создание и удаление файлов) и обрабатывает различные события, инициируемые в зависимости от типа изменений. В предыдущих версиях VB написание подобных программ было сильно затруднено тем, что программисту приходилось использовать Windows API весьма нетривиальным образом. И хотя в этой книге мы не сможем сколько-нибудь полно описать RAD-иногоументарий VB .NET, мы надеемся, что это подстегнет ваше любопытство и заставит подробнее изучить этот чрезвычайно полезный аспект VB .NET.

    Данная глава познакомит читателя с основными принципами ввода-вывода в .NET, однако она не претендует на полное изложение этой обширной темы. О вводе-выводе вполне можно написать отдельную книгу — как и серверном RAD-инструментарии!




    Содержание раздела