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

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

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

Список наиболее распространенных задач ввода-вывода см. в разделе Распространенные задачи ввода-вывода.

В этом подразделе

  • Основы файлового ввода-вывода
    Объясняет основные принципы ввода и вывода, представление классов для ввода и вывода, а также содержит примеры кода, поясняющие основные операции ввода и вывода.

  • Составление потоков
    Описывает различные типы потоков, их связь с вспомогательными запоминающими устройствами, а также содержит примеры кода.

  • Асинхронный файловый ввод-вывод
    Описывает преимущества и основные операции асинхронного ввода и вывода.

  • Изолированное хранилище
    Описывает механизм хранения данных, обеспечивающий автономность и безопасность путем определения стандартизованных способов сопоставления кода с защищенными данными.

  • Каналы
    Описывает операции с анонимными и именованными каналами в .NET Framework

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