C # - Файловый ввод-вывод

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

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

Классы ввода-вывода C #

В пространстве имен System.IO есть различные классы, которые используются для выполнения многочисленных операций с файлами, таких как создание и удаление файлов, чтение или запись в файл, закрытие файла и т. Д.

В следующей таблице показаны некоторые часто используемые неабстрактные классы в пространстве имен System.IO.

Sr. No. Класс ввода / вывода и описание
1

BinaryReader

Читает примитивные данные из двоичного потока.

2

BinaryWriter

Записывает примитивные данные в двоичном формате.

3

BufferedStream

Временное хранилище для потока байтов.

4

Directory

Помогает управлять структурой каталогов.

5

DirectoryInfo

Используется для выполнения операций с каталогами.

6

DriveInfo

Предоставляет информацию о дисках.

7

File

Помогает в манипулировании файлами.

8

FileInfo

Используется для выполнения операций с файлами.

9

FileStream

Используется для чтения и записи в любое место в файле.

10

MemoryStream

Используется для произвольного доступа к потоковым данным, хранящимся в памяти.

11

Path

Выполняет операции с информацией о пути.

12

StreamReader

Используется для чтения символов из байтового потока.

13

StreamWriter

Используется для записи символов в поток.

14

StringReader

Используется для чтения из строкового буфера.

15

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 as shown -

FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read,
   FileShare.Read);
Sr. No. Параметр и описание
1

FileMode

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

  • Append - Он открывает существующий файл и помещает курсор в конец файла или создает файл, если файл не существует.

  • Create - Создает новый файл.

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

  • Open - Открывает существующий файл.

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

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

2

FileAccess

FileAccess у счетчиков есть члены: Read, ReadWrite а также Write.

3

FileShare

FileShare у счетчиков есть следующие члены -

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

  • None - Отклоняет совместное использование текущего файла

  • Read - Позволяет открыть файл для чтения.

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

  • Write - Позволяет открыть файл для записи

пример

Следующая программа демонстрирует использование 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, вам необходимо знать обычно используемые свойства и методы этих классов.

Sr. No. Тема и описание
1 Чтение и запись в текстовые файлы

Он включает в себя чтение и запись в текстовые файлы. ВStreamReader а также StreamWriter класс помогает в этом.

2 Чтение и запись в двоичные файлы

Он включает чтение из двоичных файлов и запись в них. ВBinaryReader а также BinaryWriter class помогает в этом.

3 Управление файловой системой Windows

Это дает программисту на C # возможность просматривать и находить файлы и каталоги Windows.