Файл — это набор данных, хранящихся на диске с определенным именем и путем к каталогу. Когда файл открывается для чтения или записи, он становится потоком .
Поток в основном представляет собой последовательность байтов, проходящих через канал связи. Существует два основных потока: входной поток и выходной поток . Входной поток используется для чтения данных из файла (операция чтения), а выходной поток используется для записи в файл (операция записи).
C # I / O Classes
Пространство имен System.IO имеет различные классы, которые используются для выполнения многочисленных операций с файлами, таких как создание и удаление файлов, чтение или запись в файл, закрытие файла и т. Д.
В следующей таблице показаны некоторые часто используемые неабстрактные классы в пространстве имен System.IO.
Sr.No. | Класс ввода / вывода и описание |
---|---|
1 |
BinaryReader Читает примитивные данные из двоичного потока. |
2 |
BinaryWriter Записывает примитивные данные в двоичном формате. |
3 |
BufferedStream Временное хранилище для потока байтов. |
4 |
каталог Помогает в управлении структурой каталогов. |
5 |
DirectoryInfo Используется для выполнения операций над каталогами. |
6 |
DriveInfo Предоставляет информацию для дисков. |
7 |
файл Помогает в манипулировании файлами. |
8 |
FileInfo Используется для выполнения операций над файлами. |
9 |
FileStream Используется для чтения и записи в любом месте файла. |
10 |
MemoryStream Используется для произвольного доступа к потоковым данным, хранящимся в памяти. |
11 |
Дорожка Выполняет операции с информацией о пути. |
12 |
StreamReader Используется для чтения символов из потока байтов. |
13 |
StreamWriter Используется для записи символов в поток. |
14 |
StringReader Используется для чтения из строкового буфера. |
15 |
StringWriter Используется для записи в строковый буфер. |
BinaryReader
Читает примитивные данные из двоичного потока.
BinaryWriter
Записывает примитивные данные в двоичном формате.
BufferedStream
Временное хранилище для потока байтов.
каталог
Помогает в управлении структурой каталогов.
DirectoryInfo
Используется для выполнения операций над каталогами.
DriveInfo
Предоставляет информацию для дисков.
файл
Помогает в манипулировании файлами.
FileInfo
Используется для выполнения операций над файлами.
FileStream
Используется для чтения и записи в любом месте файла.
MemoryStream
Используется для произвольного доступа к потоковым данным, хранящимся в памяти.
Дорожка
Выполняет операции с информацией о пути.
StreamReader
Используется для чтения символов из потока байтов.
StreamWriter
Используется для записи символов в поток.
StringReader
Используется для чтения из строкового буфера.
StringWriter
Используется для записи в строковый буфер.
Класс FileStream
Класс FileStream в пространстве имен System.IO помогает в чтении, записи и закрытии файлов. Этот класс является производным от абстрактного класса Stream.
Вам необходимо создать объект FileStream, чтобы создать новый файл или открыть существующий файл. Синтаксис для создания объекта FileStream следующий:
FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);
Например, мы создаем объект FileStream F для чтения файла с именем sample.txt, как показано ниже:
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
Sr.No. | Параметр и описание |
---|---|
1 |
FileMode Перечислитель FileMode определяет различные способы открытия файлов. Членами перечислителя FileMode являются:
|
2 |
FileAccess Перечислители FileAccess имеют следующие члены: Read , ReadWrite и Write . |
3 |
Обменник Перечислители FileShare имеют следующих членов —
|
FileMode
Перечислитель FileMode определяет различные способы открытия файлов. Членами перечислителя FileMode являются:
Добавить — открывает существующий файл и помещает курсор в конец файла, либо создает файл, если файл не существует.
Создать — создает новый файл.
CreateNew — указывает операционной системе, что он должен создать новый файл.
Открыть — открывает существующий файл.
OpenOrCreate — Он указывает операционной системе, что он должен открыть файл, если он существует, в противном случае он должен создать новый файл.
Обрезать — открывает существующий файл и усекает его размер до нуля байтов.
FileAccess
Перечислители FileAccess имеют следующие члены: Read , ReadWrite и Write .
Обменник
Перечислители FileShare имеют следующих членов —
Inheritable — позволяет дескриптору файла передавать наследование дочерним процессам.
Нет — отказывается от обмена текущим файлом
Чтение — позволяет открыть файл для чтения.
ReadWrite — позволяет открыть файл для чтения и записи.
Запись — позволяет открыть файл для записи
пример
Следующая программа демонстрирует использование класса FileStream —
using System; using System.IO; namespace FileIOApplication { class Program { static void Main(string[] args) { FileStream F = new FileStream("test.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite); for (int i = 1; i <= 20; i++) { F.WriteByte((byte)i); } F.Position = 0; for (int i = 0; i <= 20; i++) { Console.Write(F.ReadByte() + " "); } F.Close(); Console.ReadKey(); } } }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1
Расширенные операции с файлами в C #
В предыдущем примере представлены простые файловые операции в C #. Однако, чтобы использовать огромные возможности классов C # System.IO, вам необходимо знать обычно используемые свойства и методы этих классов.
Это включает чтение и запись в текстовые файлы. Класс StreamReader и StreamWriter помогают достичь этого.
Это включает чтение и запись в двоичные файлы. Класс BinaryReader и BinaryWriter помогает достичь этого.
Это дает программисту C # возможность просматривать и находить файлы и каталоги Windows.