0Pricing
C# Academy · レッスン

System.IO(パス、ストリーム)

Pathのヘルパーを使い、存在を確認し、usingステートメントでStreamReader/StreamWriterを使ってテキストを読み書きします。

「System.IO(パス、ストリーム)」はCoddyKit上の無料C# Academyレッスンです。 これはレッスン1/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC# Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C# Academyコースには全3レッスンが含まれています。

System.IO 入門

目標: 外部パッケージを使わずに JSON をシリアライズおよびデシリアライズします。

  • 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 を確認します。
  • I/O エラーには IOException を捕捉し、わかりやすいメッセージを表示します。
  • すべてのストリームに using を使用することをお勧めします。

ストリームの安全な扱い

確認問題: C# 6 で、読み取りまたは書き込みの後にストリームが確実に閉じられるようにする最も安全な方法は何でしょうか?

まとめ

まとめ: Path でパスを構築し、存在を確認して、後片付けを安全に行うために読み取り処理と書き込み処理を必ず using ブロックで囲みます。

よくある質問

「System.IO(パス、ストリーム)」レッスンは無料ですか?

はい。「System.IO(パス、ストリーム)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C# Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C# Academyコースには全3レッスンが含まれています。

「System.IO(パス、ストリーム)」で何を学びますか?

Pathのヘルパーを使い、存在を確認し、usingステートメントでStreamReader/StreamWriterを使ってテキストを読み書きします。 ブラウザで直接実行するハンズオンコードでC# Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

C# Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのC# Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/3です。

「System.IO(パス、ストリーム)」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このC# Academyレッスンでコードを書いて実行できますか?

はい。すべてのC# Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. System.IO(パス、ストリーム)
  2. System.Text.JsonによるJSON(オプトイン、コンバーター)
  3. シンプルなCSV解析パターン
← C# Academyに戻る