English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C# включает в себя следующие стандартные классы IO (вход/выход), которые можно читать/записывать из различных источников (например, файлов, памяти, сети, изолированного хранилища и т.д.).
Поток (Stream): System.IO.Stream Это абстрактный класс, который предоставляет стандартные методы для передачи байтов (чтение, запись и т.д.) в источник. Как и класс-оболочка, передающий байты. Классы, которые должны читать/записывать байты из определенного источника, должны реализовать класс Stream.
Следующие классы наследуют класс Stream, чтобы предоставлять функции чтения/записи байт из конкретных источников:
FileStream:FileStream читает байты из физического файла или записывает байты в физический файл, независимо от того, это .txt, .exe, .jpg или любое другое файл.
MemoryStream: MemoryStream читает или записывает байты, хранящиеся в памяти.
BufferedStream: BufferedStream читает или записывает байты из других потоков, чтобы повысить производительность некоторых операций ввода/вывода.
NetworkStream: NetworkStream читает или записывает байты из сетевых сокетов.
PipeStream: PipeStream читает или записывает байты из других процессов.
CryptoStream: CryptoStream используется для подключения данных потоков к криптографическим преобразованиям.
На рисунке ниже показана иерархия классов потоков:
StreamReaderStreamReader - это вспомогательный класс, который используется для чтения символов из Stream, преобразовывая байты в символы с использованием кодирования. Он может использоваться для чтения строк из различных потоков (например, FileStream, MemoryStream и т.д.).
StreamWriterStreamWriter - это вспомогательный класс, который используется для записи строк в Stream, преобразовывая символы в байты. Он может использоваться для записи строк в различные потоки, такие как FileStream, MemoryStream и т.д.
BinaryReaderBinaryReader - это вспомогательный класс, предназначенный для чтения исходных данных из байт.
BinaryWriterBinaryWriter используется для записи исходных типов в двоичном формате.
На рисунке показано, что FileStream читает байты из физического файла, а затем StreamReader читает строки, преобразовывая эти байты в строки. Точно так же StreamWriter получает строку и преобразует ее в байты, затем写入 в FileStream, а затем FileStream записывает байты в физический файл. Таким образом, FileStream обрабатывает байты, а StreamReader и StreamWriter обрабатывают строки.
Stream - это абстрактный класс, предназначенный для передачи байтов из различных источников. Это базовый класс для всех других классов, которые читают/записывают байты в различные источники.
Класс FileStream предоставляет функциональность для чтения и записи байт в физические файлы.
Классы читателей и писателей предоставляют функциональность для чтения байт из потоков классов (FileStream, MemoryStream и т.д.) и преобразования байт в соответствующий кодировке.
StreamReader предоставляет вспомогательный метод для чтения строк из FileStream, преобразуя байты в строки. StreamWriter предоставляет вспомогательный метод для записи строк в FileStream, преобразуя строки в байты.
В следующей части вы узнаете, как читать/записывать в файловую систему.