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 を使用することをお勧めします。
ストリームの安全な扱い
まとめ
まとめ: 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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- System.IO(パス、ストリーム)
- System.Text.JsonによるJSON(オプトイン、コンバーター)
- シンプルなCSV解析パターン