C# Stream チュートリアル:StreamReader、StreamWriter と例
C# のファイル操作では、通常、ストリームを使用してファイルの読み取りと書き込みを行います。ストリームは、アプリケーションとファイルの間に作成される追加のレイヤーです。ストリームは、ファイルへのスムーズな読み取りおよび書き込み操作を保証するために使用されます。
ストリームは通常、大きなファイルからデータを読み取るときに使用されます。ストリームを使用することで、大きなファイルのデータが小さなチャンクに分割され、ストリームに送信されます。これらのデータのチャンクは、アプリケーションから読み取ることができます。
小さなチャンクに分割する理由は、大きなファイルを一度に読み取ることによるパフォーマンスへの影響のためです。たとえば、100 MB のファイルから一度にデータを読み取ると、アプリケーションがハングして不安定になる可能性があります。最善の方法は、ストリームを使用してファイルを管理しやすいチャンクに分割することです。
そのため、ファイルに対して書き込み操作が実行されると、書き込まれるデータが最初にストリームに書き込まれます。ストリームから、データがファイルに書き込まれます。読み取り操作についても同様です。読み取り操作では、最初にデータがファイルからストリームに転送されます。その後、データはストリームを介してアプリケーションから読み取られます。ストリームを使用して読み書きする方法の例を見てみましょう。
このチュートリアルでは、次のことを学びます-
- ストリーム リーダー
- ストリームライター
ストリーム リーダー
ストリーム リーダーは、ストリームを使用してファイルからデータを読み取るために使用されます。ファイルからのデータは、最初にストリームに読み込まれます。その後、アプリケーションはストリームからデータを読み取ります。
この例では、D ドライブに Example.txt というファイルがあると仮定します。ファイルは単純なテキスト ファイルで、以下に示すように 2 行で構成されます
- Guru99 – .Net
- Guru99 -C#
この例では、単純なコンソール アプリケーションを作成し、ファイル ストリームを操作します
ストリームを使用してファイルからデータを読み取る方法の例を見てみましょう。以下のコードを program.cs ファイルに入力してください。
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; using (StreamReader sr = File.OpenText(path)) { String s = ""; while ((s = sr.ReadLine()) != null) { Console.WriteLine(s); } } Console.ReadKey(); } } }
コードの説明:-
<オール>上記のコードを設定し、Visual Studio を使用してプロジェクトを実行すると、以下の出力が得られます。
出力:-
出力から、ストリーム リーダーがファイルから両方の行を読み取ったことがわかります。最後に、ストリームから読み取られた文字列の行がコンソールに送信されました。
ストリームライター
ストリーム ライターは、ストリームを使用してファイルにデータを書き込むために使用されます。アプリケーションからのデータは、最初にストリームに書き込まれます。その後、ストリームはデータをファイルに書き込みます。ストリームを使用してファイルからデータを書き込む方法の例を見てみましょう。以下のコードを program.cs ファイルに入力してください。
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; using (StreamWriter sr = File.AppendText(path)) { sr.WriteLine("Guru99 - ASP.Net"); sr.Close(); Console.WriteLine(File.ReadAllText(path)); } Console.ReadKey(); } } }
コードの説明:-
<オール>上記のコードを設定し、Visual Studio を使用してプロジェクトを実行すると、以下の出力が得られます。
出力:-
出力から、「Guru99 – ASP.Net」という行がファイルに正常に追加されたことがわかります。テキストの 3 行すべてがコンソールに表示されます。
まとめ
- ストリームは、アプリケーションとファイルの間の中間レベルとして使用されます。
- ファイルからデータを読み取る必要がある場合は常に、StreamReader が使用されます。
- ストリームライターは、データをファイルに書き込む必要がある場合に使用されます。
C言語