0Pricing
C# Academy · Урок

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.

Правило безопасности потоков

Быстрая проверка: как надёжнее всего обеспечить закрытие потока после чтения или записи в C# 6?

Итоги

Итоги: создавайте пути с помощью 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 — локальная установка не требуется.

Все уроки этого курса

  1. System.IO (пути и потоки)
  2. JSON с System.Text.Json (явное включение и конвертеры)
  3. Простые шаблоны разбора CSV
← Назад к C# Academy