Тип File также поддерживает несколько уникальных членов, которые могут значительно упростить процесс чтения и записи текстовых данных.
ReadAllBytes() | Открывает файл, читает двоичные данные как массив байт, затем закрывает файл |
ReadAllLines() | Открывает файл, читает текстовые данные как массив строк, затем закрывает файл |
ReadAllText() | Открывает файл, читает текстовые данные одной строкой, затем закрывает файл |
WriteAllBytes() | Открывает указанный файл, записывает в него байтовый массив и закрывает файл |
WriteAllLines() | Открывает указанный файл, записывает в него массив строк и закрывает файл |
WriteAllText() | Открывает файл, записывает в него указанную строку и закрывает файл |
Потоковый ввод-вывод
Потоки предоставляют общий способ взаимодействия с последовательностью байт независимо от того, какого рода устройство (файл, сеть, соединение, принтер и т.п.) хранит или отображает эти байты. Концепция потока не ограничена файловым вводом-выводом. Точности ради следует отметить, что библиотеки.NET предоставляют потоковый доступ к сетям, областям памяти и прочим абстракциям, связанным с потоками.
|
|
В абстрактном классе System.Stream определен набор членов, которые обеспечивают поддержку синхронного и асинхронного взаимодействия с хранилищем (например, файлом или областью памяти):
CanRead CanWrite CanSeek | Определяют, поддерживает ли текущий поток чтение, поиск и/или запись |
Close() | Закрывает текущий поток и освобождает все его ресурсы (напрмер, файловые дескрипторы). Внутренне этот метод является псевдонимом Dispose() |
Flush() | Если для вывода используется буфер, производит запись буфера и его очистку. Если поток не реализует буфер, метод не делает ничего |
Length | Возвращает длину потока в байтах |
Position | Определяет текущую позицию в потоке |
Read() ReadByte() | Читает последовательность байт (или одиночный байт) из текущего потока и перемещает текущую позицию потока на количество прочитанных байтов |
Seek() | Устанавливает позицию в текущем потоке |
SetLength() | Устанавливает длину текущего потока |
Write() WriteByte() | Пишет последовательность байт (или одиночный байт) в текущий поток и перемещает текущую позицию на количество записанных байтов |