C# Файловый ввод и вывод
aФайл— это коллекция данных, хранящаяся на диске с указанным именем и путем к каталогу. Когда файл открывается для чтения и записи, он становитсяпотоком。
По сути, поток — это последовательность байтов, передаваемая по каналу связи. Существуют два основных потока:входной потокивыходной поток。входной потокИспользуется для чтения данных из файла (операции чтения),выходной потокИспользуется для записи данных в файл (операции записи).
Классы ввода-вывода C#
Пространство имен System.IO содержит различные классы для выполнения различных файловых операций, таких как создание и удаление файлов, чтение или запись файлов, закрытие файлов и т. д.
В следующей таблице перечислены некоторые часто используемые неабстрактные классы в пространстве имен System.IO:
| Класс ввода-вывода | Описание |
|---|---|
| BinaryReader | Считывает необработанные данные из двоичного потока. |
| BinaryWriter | Записывает необработанные данные в двоичном формате. |
| BufferedStream | Временное хранилище для байтовых потоков. |
| Каталог | Помогает в операциях со структурой каталогов. |
| DirectoryInfo | Используется для выполнения операций над каталогами. |
| DriveInfo | Предоставляет информацию о дисках. |
| Файл | Помогает при обработке файлов. |
| FileInfo | Используется для выполнения операций над файлами. |
| FileStream | Используется для чтения и записи в любой позиции файла. |
| MemoryStream | Используется для произвольного доступа к потокам данных, хранящимся в памяти. |
| Путь | Выполняет операции с информацией о пути. |
| StreamReader | Используется для чтения символов из потока байтов. |
| StreamWriter | Используется для записи символов в поток. |
| StringReader | Используется для чтения строкового буфера. |
| StringWriter | Используется для записи строкового буфера. |
Класс FileStream
В пространстве имен System.IO, классFileStreamобеспечивает чтение, запись и закрытие файлов. Этот класс является производным от абстрактного класса Stream.
Вам нужно создать объектFileStream, чтобы создать новый файл или открыть существующий файл. СозданиеFileStream: синтаксис объекта следующий:
FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);
Например, создайте объект FileStreamFдля чтения файла с именемsample.txtФайл:
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
| Параметр | Описание |
|---|---|
| FileMode | FileModeПеречисление определяет различные способы открытия файлов. Члены перечисления FileMode:
|
| FileAccess | FileAccessЧлены перечисления:Read、ReadWriteиWrite。 |
| FileShare | FileShareЧлены перечисления:
|
Пример
Следующая программа демонстрирует использование классаFileStream:
Пример
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#. Однако, чтобы в полной мере использовать мощные возможности классов System.IO в C#, необходимо знать часто используемые свойства и методы этих классов.
В следующих разделах мы рассмотрим эти классы и выполняемые ими операции. Пожалуйста, перейдите по ссылкам, чтобы узнать больше о каждой части:
| тема | Описание |
|---|---|
| Чтение и запись текстовых файлов | Это включает чтение и запись текстовых файлов.StreamReaderиStreamWriterКласс помогает выполнять чтение и запись текстовых файлов. |
| Чтение и запись двоичных файлов | Это включает чтение и запись двоичных файлов.BinaryReaderиBinaryWriterКласс обеспечивает чтение и запись двоичных файлов. |
| Операции с файловой системой Windows | Это позволяет программистам на C# просматривать и находить файлы и каталоги Windows. |