Учебники

C # — File I / O

Файл — это набор данных, хранящихся на диске с определенным именем и путем к каталогу. Когда файл открывается для чтения или записи, он становится потоком .

Поток в основном представляет собой последовательность байтов, проходящих через канал связи. Существует два основных потока: входной поток и выходной поток . Входной поток используется для чтения данных из файла (операция чтения), а выходной поток используется для записи в файл (операция записи).

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 являются:

  • Добавить — открывает существующий файл и помещает курсор в конец файла, либо создает файл, если файл не существует.

  • Создать — создает новый файл.

  • CreateNew — указывает операционной системе, что он должен создать новый файл.

  • Открыть — открывает существующий файл.

  • OpenOrCreate — Он указывает операционной системе, что он должен открыть файл, если он существует, в противном случае он должен создать новый файл.

  • Обрезать — открывает существующий файл и усекает его размер до нуля байтов.

2

FileAccess

Перечислители FileAccess имеют следующие члены: Read , ReadWrite и Write .

3

Обменник

Перечислители FileShare имеют следующих членов —

  • Inheritable — позволяет дескриптору файла передавать наследование дочерним процессам.

  • Нет — отказывается от обмена текущим файлом

  • Чтение — позволяет открыть файл для чтения.

  • ReadWrite — позволяет открыть файл для чтения и записи.

  • Запись — позволяет открыть файл для записи

FileMode

Перечислитель FileMode определяет различные способы открытия файлов. Членами перечислителя FileMode являются:

Добавить — открывает существующий файл и помещает курсор в конец файла, либо создает файл, если файл не существует.

Создать — создает новый файл.

CreateNew — указывает операционной системе, что он должен создать новый файл.

Открыть — открывает существующий файл.

OpenOrCreate — Он указывает операционной системе, что он должен открыть файл, если он существует, в противном случае он должен создать новый файл.

Обрезать — открывает существующий файл и усекает его размер до нуля байтов.

FileAccess

Перечислители FileAccess имеют следующие члены: Read , ReadWrite и Write .

Обменник

Перечислители FileShare имеют следующих членов —

Inheritable — позволяет дескриптору файла передавать наследование дочерним процессам.

Нет — отказывается от обмена текущим файлом

Чтение — позволяет открыть файл для чтения.

ReadWrite — позволяет открыть файл для чтения и записи.

Запись — позволяет открыть файл для записи

пример

Следующая программа демонстрирует использование класса FileStream

Live Demo

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.