{{category C#}} FileStreamはバイナリのストリーム。 これをテキストとして読むには、StreamReaderでラップする。 「テキストとして読む」とは、要するに、いろいろ便利なメソッドを付け加える、ということ。ラインストリームとして扱うとか。 using System.IO; class FSReader { FileStream fs = null; StreamReader sr = null; try { fs = new FileStream(filePath, FileMode.Open, FileAccess.Read); sr = new StreamReader(fs); string eachLine; while ((eachLine = sr.ReadLine()) != null) { // doing something... } } catch (Exception e) { Console.WriteLine(e); } finally { if (sr != null) { sr.Close(); } } } StreamReaderの第二引数にEncodingオブジェクト(System.Text名前空間)を指定して、特定の文字コードに限定することができる。 System.IO.Fileクラスのスタティック・メソッドであるOpenも、FileStreamオブジェクトを返すことができるので、 FileStream ofs = File.Open(filePath, FileMode.Open, FileAccess.Read); とできるが、new FileStream()の方が、ファイルストリームを作っていることが明確で良くない? 余談: ReadLine()のループだが、以下のように書くことができる。 for (string eachLine; (eachLine = sr.ReadLine()) != null;) { // doing something; } こうすると、一時変数eachLineのスコープを限定できる。 余談2: for (string eachLine; sr.EndOfStream == false;) { eachLine = sr.ReadLine(); // do someting; } 余談3: StreamReader sr = new StreamReader(filePathString); これでいいらしい。。。orz