System.IO (пути и потоки)
Используйте вспомогательные методы Path, проверяйте существование и читайте и записывайте текст с помощью StreamReader/StreamWriter и оператора using.
«System.IO (пути и потоки)» — бесплатный урок C# Academy на CoddyKit. Это урок 1 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 3 уроков всего.
Введение в System.IO
Цель: безопасно читать и записывать файлы.
- Создавайте пути с помощью Path
- Проверяйте наличие с помощью File/Directory
- Используйте StreamReader/StreamWriter в блоке using
Основы Path
Используйте Path.Combine и другие методы, чтобы не расставлять разделители вручную и получать сведения о частях пути.
using System;
using System.IO;
public class Program
{
public static void Main(string[] args)
{
// Build a safe path (handles separators)
string folder = "data";
string file = "notes.txt";
string path = Path.Combine(folder, file);
Console.WriteLine("File name: " + Path.GetFileName(path));
Console.WriteLine("Directory: " + Path.GetDirectoryName(path));
Console.WriteLine("Full path: " + Path.GetFullPath(path));
}
}
Создание и запись
Используйте Directory.CreateDirectory — это безопасно, даже если каталог уже существует, — и File.WriteAllText для небольших файлов.
using System;
using System.IO;
public class Program
{
public static void Main(string[] args)
{
string folder = "data";
if (!Directory.Exists(folder))
{
Directory.CreateDirectory(folder); // create if missing
}
string path = Path.Combine(folder, "hello.txt");
// Simple one-shot write
File.WriteAllText(path, "Hello file!");
Console.WriteLine("Wrote: " + path);
}
}
Безопасное чтение
Помещайте средства чтения в блок using. Дескриптор файла будет освобождён даже при возникновении исключения.
using System;
using System.IO;
public class Program
{
public static void Main(string[] args)
{
string path = Path.Combine("data", "hello.txt");
if (File.Exists(path))
{
using (StreamReader r = new StreamReader(path))
{
string content = r.ReadToEnd(); // read all
Console.WriteLine("Content: " + content);
} // Dispose closes the file
}
else
{
Console.WriteLine("Missing file: " + path);
}
}
}
Безопасная запись
StreamWriter записывает текст. Передайте append=true, чтобы добавлять строки, не перезаписывая содержимое.
using System;
using System.IO;
public class Program
{
public static void Main(string[] args)
{
string path = Path.Combine("data", "log.txt");
// Append = true so we keep old content
using (StreamWriter w = new StreamWriter(path, true))
{
w.WriteLine(DateTime.UtcNow.ToString("u") + " - started");
w.WriteLine("Work done");
} // closed here
Console.WriteLine("Appended to log: " + path);
}
}
Проверки и советы
Советы:
- Перед использованием проверяйте File.Exists/Directory.Exists.
- Перехватывайте IOException для ошибок ввода-вывода и выводите понятное сообщение.
- Для всех потоков отдавайте предпочтение using.
Правило безопасности потоков
Итоги
Итоги: создавайте пути с помощью Path, проверяйте наличие и всегда помещайте средства чтения и записи в блок using для безопасного освобождения ресурсов.
Часто задаваемые вопросы
Урок «System.IO (пути и потоки)» бесплатный?
Да — полный текст урока «System.IO (пути и потоки)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 3 уроков всего.
Чему я научусь в уроке «System.IO (пути и потоки)»?
Используйте вспомогательные методы Path, проверяйте существование и читайте и записывайте текст с помощью StreamReader/StreamWriter и оператора using. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C# Academy?
Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 3.
Сколько времени занимает урок «System.IO (пути и потоки)»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C# Academy?
Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- System.IO (пути и потоки)
- JSON с System.Text.Json (явное включение и конвертеры)
- Простые шаблоны разбора CSV