c filestream streamwriter
このチュートリアルでは、C#名前空間であるSystem.IOについて学習します。この名前空間は、ファイルI / Oを処理するためのFileStream、StreamWriter、StreamReaderなどのC#クラスを提供します。
経験豊富なロードランナーインタビューの質問と回答
ファイルは基本的に、特定のディレクトリのメモリに適切な名前と拡張子で格納されているシステムオブジェクトです。 C#では、データの書き込みまたは読み取りに使用する場合、ファイルをストリームと呼びます。
このチュートリアルでは、特定のファイルからデータを取得するために使用される入力ストリームと、データをファイルに入れるために使用される出力ストリームの両方を調べます。
学習内容:
System.IO名前空間
System.IOは、C#に存在する名前空間であり、特定のファイルからのデータの作成、編集、取得など、特定のストリームでさまざまな操作を実行するために使用できるクラスが含まれています。
これらのクラスのいくつかを見てみましょう。
C#FileStream
ファイルストリームは、ファイル操作を実行するためのパスを提供します。これは主に、ファイルへのデータの読み取りと書き込みに使用されます。
ファイルに書き込む例:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); f.WriteByte(70); Console.WriteLine('Data written into file'); f.Close(); Console.WriteLine('File Stream closed'); } } }
ここでは、ファイルストリームを使用して1バイトのデータをファイルに書き込む簡単なプログラムを作成しました。最初に、FileStreamオブジェクトを作成し、ファイルの名前を渡しました。次に、ファイルモードを開くか作成するように設定します。開いたファイルに、WriteByteを使用して1バイトを書き込み、最後にすべてを閉じました。
出力は、1バイトのtxtファイルです。
ファイルを読み取る例
前の例では、ファイルに書き込む方法を学びました。ファイルを読み取ってみましょう。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); char a = (char)f.ReadByte(); Console.WriteLine('Data read from file is: '+a); f.Close(); Console.WriteLine('File Stream closed'); Console.ReadLine(); } } }
ここでは、ReadByteを使用してファイルからバイトを読み取りました。このコマンドは、ファイルから1バイトを読み取るために使用されます。より多くのデータを読み取りたい場合は、ループを通過させる必要があります。次に、それをchar変数に格納しましたが、戻り値の型がReadByteと常に一致するとは限らないため、charのキャストも追加しました。
このプログラムを実行すると、次の出力が表示されます。
出力
開いたファイル
ファイルから読み取られたデータは次のとおりです:F
ファイルストリームが閉じられました
C#StreamWriter
C#のStreamWriterクラスは、ストリームに文字を書き込むために使用されます。 TextWriterクラスを基本クラスとして使用し、データをファイルに書き込むためのオーバーロードメソッドを提供します。
StreamWriterは、主に複数文字のデータをファイルに書き込むために使用されます。
例:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); //declared stream writer StreamWriter s = new StreamWriter(f); Console.WriteLine('Writing data to file'); s.WriteLine('Writing data into file using stream writer'); //closing stream writer s.Close(); f.Close(); Console.WriteLine('File Stream closed'); Console.ReadLine(); } } }
FileStreamオブジェクトを初期化した後、FileStreamオブジェクトを使用してStreamWriterオブジェクトも初期化しました。次に、WriteLineメソッドを使用して、1行のデータをファイルに書き込みました。次に、StreamWriterを閉じてからFileStreamを閉じました。
次のコードの出力は、ユーザーデータが書き込まれたファイルになります。
ヘルプデスク技術者の面接の質問と回答pdf
出力
C#StreamReader
StreamReaderは、ファイルから文字列または大きな文を読み取るために使用されます。 StreamReaderは、基本クラスとしてTextReaderクラスも使用し、ReadingやReadLineなどのメソッドを提供してストリームからデータを読み取ります。
データの読み取り例:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); //declared stream reader StreamReader sr = new StreamReader(f); Console.WriteLine('Reading data from the file'); string line = sr.ReadLine(); Console.WriteLine('The data from the file is : ' + line); //closing stream writer sr.Close(); f.Close(); Console.WriteLine('File Stream closed'); Console.ReadLine(); } } }
ここでは、FileStreamを使用してStreamReaderからオブジェクトを作成しました。次に、単純なreadlineメソッドを使用してファイルからデータを読み取りました。 StreamReaderを閉じてから、FileStreamを閉じました。
上記のプログラムは、次の出力を生成しました。
出力:
開いたファイル
ファイルからのデータの読み取り
ファイルからのデータは次のとおりです。ストリームライターを使用してファイルにデータを書き込む
ファイルストリームが閉じられました
.datファイルを開く方法
C#TextWriter
C#では、TextWriterクラスは抽象クラスとして記述されます。これは、ファイル内に一連の文字を連続して作成するために使用されます。これは、ユーザーがファイルに連続した文字やテキストを書き込むこともできるストリームライターと非常に似ていますが、操作のためにFileStreamを作成する必要はありません。
TextWriterがどのように機能するかを知る例:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { using (TextWriter writer = File.CreateText('d:\textFile.txt')) { writer.WriteLine('The first line with text writer'); } Console.ReadLine(); } } }
上記のコードは、StreamWriterと同様に機能します。 WriteLineメソッドは、ファイル内にデータを書き込みます。 usingステートメントブロック内で複数のWriteLineメソッドを使用して、ファイルに複数のデータを書き込むことができます。
出力は、ユーザー定義のテキストを含むテキストファイルを作成します。
出力:
C#TextReader
テキストリーダーは、System.IOにあるもう1つのクラスです。特定のファイルからテキストまたは任意の連続文字を読み取るために使用されます。
例:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { using (TextReader txtR = File.OpenText('d:\textFile.txt')) { String data = txtR.ReadToEnd(); Console.WriteLine(data); } Console.ReadLine(); } } }
上記のプログラムでは、TextReaderを使用して、特定の場所に保存されているファイルを開きました。次に、ファイルのデータを格納するための文字列変数を宣言しました。 ReadToEndメソッドは、ファイル内のすべてのデータが読み取られたことを確認します。その後、データをコンソールに出力しました。
上記のプログラムの出力は次のようになります。
テキストライターの最初の行
結論
C#内のSystem.IO名前空間は、プログラマーがさまざまなファイルに対して読み取り/書き込み操作を実行できるようにするためのさまざまなクラスとメソッドを提供します。 System.IOには、FileStream、StreamReader、StreamWriter、TextReader、TextWriterなどのいくつかのクラスが含まれています。
これらのクラスはすべて、要件に応じて、ファイルに対する読み取り/書き込み操作の特定の実装を提供します。
コードサンプル
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); f.WriteByte(70); Console.WriteLine('Data written into file'); char a = (char)f.ReadByte(); Console.WriteLine('Data read from file is: ' + a); //declared stream writer StreamWriter s = new StreamWriter(f); Console.WriteLine('Writing data to file'); s.WriteLine('Writing data into file using stream writer'); //declared stream reader StreamReader sr = new StreamReader(f); Console.WriteLine('Reading data from the file'); string line = sr.ReadLine(); Console.WriteLine('The data from the file is : ' + line); //closing stream sr.Close(); f.Close(); Console.WriteLine('File Stream closed'); using (TextWriter writer = File.CreateText('d:\textFile.txt')) { writer.WriteLine('The first line with text writer'); } using (TextReader txtR = File.OpenText('d:\textFile.txt')) { String data = txtR.ReadToEnd(); Console.WriteLine(data); } Console.ReadLine(); } } }