Языки программирования

Введение в пространство имён System.IO

В статье «История языка C#» я уже затрагивал тему «Пространство имён». Советую изучить её и обязательно вернуться назад. На этом уроке вы познакомитесь с основными классами пространства имён System.IO.
Всё, что связано с вводом/выводом хранится в пространстве имён System.IO. В .NET это пространство имён посвящено службам файлового ввода-вывода, ввода-вывода из памяти. В этом пространстве определён набор классов, интерфейсов, перечислений, структур и делегатов.
Основные классы из пространства имён System.IO:

BinaryReader, BinaryWriter

Позволяют читать и записывать элементарные типы данных (целочисленные, булевские, строковые и т.п.) в двоичном виде.

BufferedStream

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

Directory, DirectoryInfo

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

DriveInfo

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

File, FileInfo

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

FileStream

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

MemoryStream

Обеспечивает произвольный доступ к данным, хранящимся в памяти, а не в физическом файле.

Path

Предоставляет информацию о пути к файлу/каталогу.

StreamReader, StreamWriter

Используется для чтения и записи текстовой информации из файла. Не поддерживают произвольного доступа к файлу.

StringReader, StringWriter

Также используется для чтения и записи текстовой информации из файла. Однако в качестве хранилища они используют строковый буфер, а не физический файл.

Пример

В этом примере текстовый файл открывается с помощью средства чтения потока (StreamReader), содержимое копируется в строку, а строка выводится на консоль.
using System;
using System.IO;

class Test_File
{
    public static void Main()
    {
        try
        {   // Открываем текстовый файл с помощью средства чтения потока 
            using (StreamReader sr = new StreamReader("Test_File.txt"))
            {
	        // Содержимое текстового файла копируется в строку, а строка выводится на консоль
                String line = sr.ReadToEnd();
                Console.WriteLine(line);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("Файл не может быть прочитан:");
            Console.WriteLine(e.Message);
        }
    }
}
Для закрепления материала советую подробно изучить данный пример и отработать его на практике. Также рассмотрите и остальные классы пространства имён System.IO, а свои примеры пишите в комментариях.
2023-11-21 16:39 Самоучитель по C#