В статье «История языка 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, а свои примеры пишите в комментариях.